Wie führe ich ein Python-Skript in der interaktiven IDLE-Shell aus?
Folgendes wirft einen Fehler:
>>> python helloworld.py
SyntaxError: invalid syntax
Integrierte Funktion: execfile
execfile('helloworld.py')
Es kann normalerweise nicht mit Argumenten aufgerufen werden. Hier ist jedoch eine Problemumgehung:
import sys
sys.argv = ['helloworld.py', 'arg'] # argv[0] should still be the script name
execfile('helloworld.py')
Veraltet seit 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
Mit Argumenten:
os.popen('python helloworld.py arg').read()
Vorab-Nutzung: Unterprozess
import subprocess
subprocess.call(['python', 'helloworld.py']) # Just run the program
subprocess.check_output(['python', 'helloworld.py']) # Also gets you the stdout
Mit Argumenten:
subprocess.call(['python', 'helloworld.py', 'arg'])
Lesen Sie die Dokumentation für Details :-)
Getestet mit diesem grundlegenden helloworld.py
:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
Sie können dies in Python3 verwenden:
exec(open(filename).read())
Das IDLE-Shell-Fenster ist nicht dasselbe wie eine Terminal-Shell (z. B. Ausführung von sh
oder bash
). Es ist eher so, als wäre man im interaktiven Python-Interpreter (python -i
). Die einfachste Möglichkeit, ein Skript in IDLE auszuführen, besteht darin, den Befehl Open
aus dem Menü File
zu verwenden (dies kann je nach Plattform unterschiedlich sein), um die Skriptdatei in ein IDLE-Editorfenster zu laden und dann die Run
-> zu verwenden Run Module
-Befehl (Tastenkombination F5).
Versuche dies
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
execFile('helloworld.py')
erledigt die Arbeit für mich. Zu beachten ist, dass Sie den vollständigen Verzeichnisnamen der PY-Datei eingeben, wenn er sich nicht im Python-Ordner befindet (zumindest in Windows)
Zum Beispiel execFile('C:/helloworld.py')
Zum Beispiel:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
EINFACHSTER WEG
python -i helloworld.py #Python 2
python3 -i helloworld.py #Python 3
sie können es auf zwei Arten tun
import file_name
exec(open('file_name').read())
stellen Sie jedoch sicher, dass die Datei dort gespeichert ist, wo Ihr Programm läuft
In IDLE funktioniert das Folgende: -
import helloworld
Ich weiß nicht viel darüber, warum es funktioniert, aber es tut es ..
Um ein Python-Skript in einer Python-Shell wie Idle oder in einer Django-Shell auszuführen, können Sie mit der Funktion exec () Folgendes ausführen. Exec () führt ein Codeobjektargument aus. Ein Codeobjekt in Python ist einfach kompilierter Python-Code. Sie müssen also zunächst Ihre Skriptdatei kompilieren und dann mit exec () ausführen. Von deiner Shell:
>>>file_to_compile = open('/path/to/your/file.py').read() >>>code_object = compile(file_to_compile, '<string>', 'exec') >>>exec(code_object)
Ich verwende Python 3.4. Ausführliche Informationen finden Sie in den Dokumenten compile und exec .
In Python 3 gibt es keine execFile
. Die eingebaute Funktion exec
kann beispielsweise verwendet werden:
import helloworld
exec('helloworld')
Ich habe das getestet und es klappt irgendwie:
exec(open('filename').read()) # Don't forget to put the filename between ' '
In einer Windows-Umgebung können Sie die py-Datei auf der Python3-Shell-Befehlszeile mit der folgenden Syntax ausführen:
exec (offen ('absoluter Pfad zu Dateiname'). read ())
Nachfolgend wird erläutert, wie Sie eine einfache helloworld.py-Datei über die Python-Shell-Befehlszeile ausführen
Dateispeicherort: C: /Users/testuser/testfolder/helloworld.py
Dateiinhalt: drucken ("Hallo Welt")
Wir können diese Datei auf der Python3.7-Shell wie folgt ausführen:
>>> 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