interprete - ¿Cómo ejecutar un script de python desde el shell interactivo IDLE?
idle python (10)
¿Cómo ejecuto un script de Python desde dentro del shell interactivo IDLE?
Lo siguiente arroja un error:
>>> python helloworld.py
SyntaxError: invalid syntax
En IDLE, los siguientes trabajos:
import helloworld
No sé mucho sobre por qué funciona, pero sí ...
En Python 3, no hay execFile
. Uno puede usar la función incorporada de exec
, por ejemplo:
import helloworld
exec(''helloworld'')
execfile(''helloworld.py'')
Normalmente no se puede invocar con argumentos. Pero aquí hay una solución:
import sys
sys.argv = [''helloworld.py'', ''arg''] # argv[0] should still be the script name
execfile(''helloworld.py'')
Obsoleto desde 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
Con argumentos:
os.popen(''python helloworld.py arg'').read()
Uso anticipado: subprocess
import subprocess
subprocess.call([''python'', ''helloworld.py'']) # Just run the program
subprocess.check_output([''python'', ''helloworld.py'']) # Also gets you the stdout
Con argumentos:
subprocess.call([''python'', ''helloworld.py'', ''arg''])
Lea los documentos para más detalles :-)
Probado con este helloworld.py
básico:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
La ventana del shell IDLE no es lo mismo que un shell terminal (por ejemplo, ejecutando sh
o bash
). Más bien, es como estar en el intérprete interactivo de Python ( python -i
). La forma más fácil de ejecutar un script en IDLE es usar el comando Open
del menú File
(esto puede variar un poco dependiendo de la plataforma que esté ejecutando) para cargar su archivo de script en una ventana del editor IDLE y luego use la Run
-> Run Module
comando de Run Module
(atajo de teclado F5).
Para ejecutar un script de Python en un shell de Python como Idle o en un shell de Django, puede hacer lo siguiente usando la función exec (). Exec () ejecuta un argumento de objeto de código. Un objeto de código en Python es simplemente código de Python compilado. Entonces, primero debe compilar su archivo de script y luego ejecutarlo usando exec (). De tu caparazón:
>>>file_to_compile = open(''/path/to/your/file.py'').read() >>>code_object = compile(file_to_compile, ''<string>'', ''exec'') >>>exec(code_object)
Estoy usando Python 3.4. Consulte los documentos de compile y exec para obtener información detallada.
Por ejemplo:
import subprocess
subprocess.call("C:/helloworld.py")
subprocess.call(["python", "-h"])
Probé esto y funciona:
exec(open(''filename'').read()) # Don''t forget to put the filename between '' ''
Prueba esto
import os
import subprocess
DIR = os.path.join(''C://', ''Users'', ''Sergey'', ''Desktop'', ''helloword.py'')
subprocess.call([''python'', DIR])
Puedes usar esto en python3:
exec(open(filename).read())
execFile(''helloworld.py'')
hace el trabajo por mí. Una cosa a tener en cuenta es ingresar el nombre completo del directorio del archivo .py si no está en la carpeta Python misma (al menos este es el caso en Windows)
Por ejemplo, execFile(''C:/helloworld.py'')