Hoe voer ik een python-script uit vanuit de IDLE interactieve shell?
Het volgende geeft een fout:
>>> python helloworld.py
SyntaxError: invalid syntax
Antwoord 1, autoriteit 100%
Python3:
exec(open('helloworld.py').read())
Als uw bestand niet in dezelfde map staat:
exec(open('./app/filename.py').read())
Zie https://stackoverflow.com/a/437857/739577voor het doorgeven van globale/lokale variabelen.
p>
In verouderde Python-versies
Python2
Ingebouwde functie: execbestand
execfile('helloworld.py')
Het kan normaal gesproken niet worden aangeroepen met argumenten. Maar hier is een oplossing:
import sys
sys.argv = ['helloworld.py', 'arg'] # argv[0] should still be the script name
execfile('helloworld.py')
Verouderd sinds 2.6: popen
import os
os.popen('python helloworld.py') # Just run the program
os.popen('python helloworld.py').read() # Also gets you the stdout
Met argumenten:
os.popen('python helloworld.py arg').read()
Geavanceerd gebruik: subproces
import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout
Met argumenten:
subprocess.call(['python', 'helloworld.py', 'arg'])
Lees de documenten voor details 🙂
Getest met deze basis helloworld.py
:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
Antwoord 2, autoriteit 24%
Je kunt dit gebruiken in python3:
exec(open(filename).read())
Antwoord 3, autoriteit 15%
Het IDLE-shellvenster is niet hetzelfde als een terminal-shell (bijv. sh
of bash
uitvoeren). Het is eerder alsof je in de Python-interactieve interpreter bent (python -i
). De eenvoudigste manier om een script in IDLE uit te voeren, is door de opdracht Open
te gebruiken in het menu File
(dit kan een beetje variëren, afhankelijk van het platform dat u gebruikt) om uw scriptbestand naar een IDLE-editorvenster en gebruik vervolgens de Run
-> Run Module
commando (sneltoets F5).
Antwoord 4, autoriteit 4%
Probeer dit
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
Antwoord 5, autoriteit 4%
GEMAKKELIJKSTE MANIER
python -i helloworld.py #Python 2
python3 -i helloworld.py #Python 3
Antwoord 6, autoriteit 2%
execFile('helloworld.py')
doet het werk voor mij. Een ding om op te merken is om de volledige mapnaam van het .py-bestand in te voeren als het niet in de Python-map zelf staat (dit is tenminste het geval op Windows)
Bijvoorbeeld execFile('C:/helloworld.py')
Antwoord 7
Bijvoorbeeld:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
Antwoord 8
In een python-console kan men de volgende 2 manieren proberen.
onder dezelfde werkmap,
1.
>> import helloworld
# als u een variabele xheeft, kunt u deze afdrukken in IDLE.
>> halloworld.x
# als je een functie funchebt, kun je deze ook zo aanroepen.
>> helloworld.func()
2.
>> runfile(./helloworld.py”)
Antwoord 9
In Python 3 is er geen execFile
. Men kan de ingebouwde functie exec
gebruiken , bijvoorbeeld:
import helloworld
exec('helloworld')
Antwoord 10
In IDLE werkt het volgende:-
import helloworld
Antwoord 11
Als u een python-script wilt uitvoeren in een python-shell zoals Idle of in een Django-shell, kunt u het volgende doen met de functie exec(). Exec() voert een code-objectargument uit. Een code-object in Python is gewoon gecompileerde Python-code. U moet dus eerst uw scriptbestand compileren en vervolgens uitvoeren met exec(). Vanuit je schelp:
>>>file_to_compile = open('/path/to/your/file.py').read() >>>code_object = compile(file_to_compile, '<string>', 'exec') >>>exec(code_object)
Ik gebruik Python 3.4. Zie de compilerenen exec-documenten voor gedetailleerde informatie.
Antwoord 12
Ik heb dit getest en het werkt een beetje :
exec(open('filename').read()) # Don't forget to put the filename between ' '
Antwoord 13
je kunt het op twee manieren doen
-
import file_name
-
exec(open('file_name').read())
maar zorg ervoor dat het bestand wordt opgeslagen waar uw programma draait
Antwoord 14
In een Windows-omgeving kunt u het py-bestand uitvoeren op de Python3-shellopdrachtregel met de volgende syntaxis:
exec(open(‘absoluut pad naar bestandsnaam’).read())
Hieronder wordt uitgelegd hoe u een eenvoudig helloworld.py-bestand uitvoert vanaf de opdrachtregel van de python-shell
Bestandslocatie: C:/Users/testuser/testfolder/helloworld.py
Bestandsinhoud: print(“hello world”)
We kunnen dit bestand op Python3.7 Shell als volgt uitvoeren:
>>> import os
>>> abs_path = 'C://Users/testuser/testfolder'
>>> os.chdir(abs_path)
>>> os.getcwd()
'C:\\Users\\testuser\\testfolder'
>>> exec(open("helloworld.py").read())
hello world
>>> exec(open("C:\\Users\\testuser\\testfolder\\helloworld.py").read())
hello world
>>> os.path.abspath("helloworld.py")
'C:\\Users\\testuser\\testfolder\\helloworld.py'
>>> import helloworld
hello world
Antwoord 15
Er is nog een alternatief (voor Windows) –
import os
os.system('py "<path of program with extension>"')