Am'm încercarea de a executa un fișier cu comenzi python din cadrul interpret.
EDIT: am'm încercarea de a utiliza variabile și setări din acest dosar, nu să invoce un proces separat.
Pentru Python 2:
>>> execfile('filename.py')
Pentru Python 3:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
A se vedea documentația. Dacă sunteți folosind Python 3.0, a se vedea acest question.
A se vedea răspunsul de @S. Lott pentru un exemplu de cum ai acces globals din filename.py după executarea acesteia.
Mai multe moduri.
De la shell
python someFile.py
Din interiorul INACTIV, a lovit F5.
Daca're tastarea interactiv, încercați acest lucru: (Python 2 numai!)
>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module
Pentru Python3, utilizați:
>>> exec(open("filename.py").read())
exec(open("./path/to/script.py").read(), globals())
Acest lucru va executa un script și-a pus toate l's variabile globale în interpret's aplicare la nivel mondial (comportamentul normal în cele mai multe scripting medii).
Surprins am't văzut încă acest lucru. Puteți executa un fișier și apoi se lasă interpret deschis după execuție se termină folosind -i
opțiune:
| foo.py |
----------
testvar = 10
def bar(bing):
return bing*3
--------
$ python -i foo.py
>>> testvar
10
>>> bar(6)
18
nu'm încercarea de a utiliza variabile și setări din acest dosar, nu să invoce un proces separat.
Ei bine, pur și simplu importa fișierul cu importul fisierului(minus .py, trebuie să fie în același director sau de pe site -
PYTHONPATH) va rula fișiere, făcând variabile, funcții, clase, etc. disponibil în
filename.variabila nume.
Deci, dacă aveți cheddar.py cu variabila spam-ul și funcția ouă – le puteți importa cu import cheddar, accesează variabila cu cheddar.spam-ul și executați funcția de asteptare
cheddar.ouă()`
Dacă aveți codul în cheddar.py
care este în afara o funcție, acesta va fi rulat imediat, dar construirea de aplicații care rulează lucruri pe import se va face greu de a reutiliza codul. Dacă este posibil, a pus totul în interiorul funcții sau clase.
Eu nu sunt un expert, dar asta este ce am observat eu:
în cazul în care codul este mycode.py de exemplu, tastați doar 'import mycode', Python va executa, dar acesta nu va face toate variabilele disponibile pentru interpret. Am găsit că ar trebui să tastați, de fapt, 'de la mycode import *' dacă doriți să faceți toate variabilele disponibile pentru interpret.
Din punctul meu de vedere, cel mai bun mod este:
import yourfile
și după modificarea yourfile.py
reload(yourfile)
sau
import imp;
imp.reload(yourfile) in python3
dar acest lucru se va face în funcție și de clase arată așa: yourfile.function1, yourfile.class1.....
Dacă nu puteți accepta, în cele din urmă soluție este:
reload(yourfile)
from yourfile import *
Pentru Python 3:
>>> exec(open("helloworld.py").read())
Asigurați-vă că're în directorul corect înainte de a rula comanda.
Pentru a rula un fișier dintr-un director diferit, puteți folosi comanda de mai jos:
with open ("C:\\Users\\UserName\\SomeFolder\\helloworld.py", "r") as file:
exec(file.read())
Fă,
from my_file import *
Asigurați-vă că nu pentru a adăuga .py extensie. Dacă .py fișier în subdirectorul utilizare,
from my_dir.my_file import *