Ich versuche, eine Datei mit Python-Befehlen aus dem Interpreter heraus auszuführen.
EDIT: Ich versuche, Variablen und Einstellungen aus dieser Datei zu verwenden, nicht einen separaten Prozess aufzurufen.
Ich versuche, eine Datei mit Python-Befehlen aus dem Interpreter heraus auszuführen.
EDIT: Ich versuche, Variablen und Einstellungen aus dieser Datei zu verwenden, nicht einen separaten Prozess aufzurufen.
Mehrere Möglichkeiten.
Aus der Schale
python someFile.py
Drücken Sie im IDLE-Modus F5 .
Wenn Sie interaktiv tippen, versuchen Sie dies ( Python3 ):
>>> exec(open("filename.py").read())
Für Python 2:
>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module
Für Python 2:
>>> execfile('filename.py')
Für Python 3:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
Voir die Dokumentation . Wenn Sie Python 3.0 verwenden, siehe diese Frage .
In der Antwort von @S.Lott finden Sie ein Beispiel dafür, wie Sie nach der Ausführung von filename.py auf Globals zugreifen.
Ich bin überrascht, dass ich das noch nicht gesehen habe. Sie können eine Datei ausführen und dann den Interpreter nach Beendigung der Ausführung offen lassen, indem Sie die -i
Option:
| foo.py |
----------
testvar = 10
def bar(bing):
return bing*3
--------
$ python -i foo.py
>>> testvar
10
>>> bar(6)
18
Ich versuche, Variablen und Einstellungen aus dieser Datei zu verwenden, nicht einen separaten Prozess aufzurufen.
Nun, das einfache Importieren der Datei mit import filename
(minus .py, muss im selben Verzeichnis oder auf Ihrem PYTHONPATH
) führt die Datei aus und macht ihre Variablen, Funktionen, Klassen usw. in der filename.variable
Namensraum.
Wenn Sie also cheddar.py
mit der Variablen spam und der Funktion eggs - Sie können sie mit import cheddar
greifen Sie auf die Variable mit cheddar.spam
und führen Sie die Funktion aus, indem Sie cheddar.eggs()
Wenn Sie Code in cheddar.py
die sich außerhalb einer Funktion befindet, wird sie sofort ausgeführt, aber wenn Sie Anwendungen erstellen, die Dinge beim Import ausführen, wird es schwierig, Ihren Code wiederzuverwenden. Wenn möglich, sollten Sie alles in Funktionen oder Klassen unterbringen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.