webentwicklung-frage-antwort-db.com.de

Gibt es eine Möglichkeit, ein Python-Skript im interaktiven Modus auszuführen?

Normalerweise können Sie ein Python-Skript ausführen, zum Beispiel: python myscript.py. Wenn Sie sich jedoch im interaktiven Modus befinden, wie können Sie ein Python-Skript auf dem Dateisystem ausführen?

>>> exec(File) ???

Es sollte möglich sein, das Skript mehrmals auszuführen. 

46
lennykey

Verwenden Sie execfile ('script.py') , aber es funktioniert nur mit Python 2.x, wenn Sie 3.0 verwenden, versuchen Sie this

40
fn.

import file ohne die Erweiterung .py erledigt dies, jedoch wird __name__ nicht "__main__" sein. Wenn das Skript also prüft, ob es interaktiv ausgeführt wird, müssen Sie es umgehen.

Wenn Sie nach dem Ausführen des Skripts einen Blick auf die Umgebung werfen möchten, versuchen Sie es alternativ mit python -i script.py.

EDIT: Zum erneuten Laden

file = reload(file)

31
richo

Vielleicht möchten Sie in IPython , einer leistungsfähigeren interaktiven Shell, nachsehen. Es verfügt über verschiedene "magische" Befehle, einschließlich %run script.py (die natürlich das Skript ausführt und alle definierten Variablen für die Untersuchung hinterlässt).

10
Thomas K

Sie können auch das Modul subprocess verwenden. So etwas wie:

>>> import subprocess
>>> proc = subprocess.Popen(['./script.py'])
>>> proc.communicate()
5

Sie können jeden Systembefehl mit Python ausführen:

>>>from subprocess import Popen
>>>Popen("python myscript.py", Shell=True)
2
Silver Light

Am einfachsten geht es mit dem Modul os:

import os

os.system('python script.py')

Tatsächlich os.system('cmd'), um Shell-Befehle auszuführen. Hoffe es wird genug sein.

0
Mr Geek