Estoy tratando de ejecutar un archivo con comandos de python desde el intérprete.
EDIT: Estoy tratando de utilizar las variables y la configuración de ese archivo, no para invocar un proceso separado.
Para Python 2:
>>> execfile('filename.py')
Para Python 3:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
Consulte la documentación. Si está utilizando Python 3.0, consulte esta pregunta.
Ver la respuesta de @S.Lott para un ejemplo de cómo se accede a los globales de filename.py después de ejecutarlo.
De varias maneras.
Desde la cáscara
python someFile.py
Desde el interior de IDLE, pulsa F5.
Si estás escribiendo de forma interactiva, prueba esto: (Sólo en Python 2)
>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module
Para Python3, utilice:
>>> exec(open("filename.py").read())
Estoy tratando de utilizar las variables y la configuración de ese archivo, no para invocar un proceso separado.
Bueno, simplemente importando el archivo con import filename
(menos el .py, necesita estar en el mismo directorio o en su PYTHONPATH
) ejecutará el archivo, haciendo que sus variables, funciones, clases, etc. estén disponibles en el espacio de nombres filename.variable
.
Así que si tienes cheddar.py
con la variable spam y la función eggs - puedes importarlos con import cheddar
, acceder a la variable con cheddar.spam
y ejecutar la función llamando a cheddar.eggs()
.
Si tienes código en cheddar.py
que está fuera de una función, se ejecutará inmediatamente, pero construir aplicaciones que ejecuten cosas en la importación va a dificultar la reutilización de tu código. Si es posible, pon todo dentro de funciones o clases.