¿Cómo ejecuto un script de Python desde el shell interactivo IDLE?
Lo siguiente arroja un error:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
en una ventana de shell IDLE y eso no funcione.
¿Cómo ejecuto un script de Python desde el shell interactivo IDLE?
Lo siguiente arroja un error:
>>> python helloworld.py
SyntaxError: invalid syntax
python helloworld.py
en una ventana de shell IDLE y eso no funcione.
Respuestas:
Python3 :
exec(open('helloworld.py').read())
Si su archivo no está en el mismo directorio:
exec(open('./app/filename.py').read())
Consulte https://stackoverflow.com/a/437857/739577 para pasar variables globales / locales.
En versiones obsoletas de Python
Función incorporada de Python2 : execfile
execfile('helloworld.py')
Normalmente no se puede llamar 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')
En desuso 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 avanzado: subproceso
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 obtener más detalles :-)
Probado con este básico helloworld.py
:
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
exec
para Python3
La ventana del shell IDLE no es lo mismo que un shell terminal (por ejemplo, en ejecución 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 Open
comando del File
menú (esto puede variar un poco según la plataforma que esté ejecutando) para cargar su archivo de script en una ventana del editor IDLE y luego usar el comando Run
-> Run Module
(acceso directo F5).
sys.argv
al principio del programa, por ejemplo, en el if __name__ == "__main__"
modelo habitual .
Run
-> Run with Customized...
(atajo Shift + F5) y se abrirá una ventana emergente donde podrá proporcionar sus argumentos. Desafortunadamente, no los recuerda actualmente, por lo que los pegará con cada ejecución.
Prueba esto
import os
import subprocess
DIR = os.path.join('C:\\', 'Users', 'Sergey', 'Desktop', 'helloword.py')
subprocess.call(['python', DIR])
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 de Python (al menos este es el caso en Windows)
Por ejemplo, execFile('C:/helloworld.py')
Por ejemplo:
import subprocess
subprocess.call("C:\helloworld.py")
subprocess.call(["python", "-h"])
subprocess.call(r'c:\path\to\something.py')
no funciona para mi. OSError: [WinError 193]% 1 no es una aplicación Win32 válida
En IDLE, funciona lo siguiente: -
import helloworld
No sé mucho sobre por qué funciona, pero funciona ...
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 Python compilado. Por lo tanto, 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 compilación y ejecución para obtener información detallada.
Probé esto y funciona un poco:
exec(open('filename').read()) # Don't forget to put the filename between ' '
En el entorno Windows, puede ejecutar el archivo py en la línea de comandos del shell Python3 con la siguiente sintaxis:
exec (open ('ruta absoluta al nombre_archivo'). read ())
A continuación se explica cómo ejecutar un archivo helloworld.py simple desde la línea de comandos del shell de Python
Ubicación del archivo: C: /Users/testuser/testfolder/helloworld.py
Contenido del archivo: imprimir ("hola mundo")
Podemos ejecutar este archivo en Python3.7 Shell de la siguiente manera:
>>> import os
>>> abs_path = 'C://Users/testuser/testfolder'
>>> os.chdir(abs_path)
>>> os.getcwd()
'C:\\Users\\testuser\\testfolder'
>>> exec(open("helloworld.py").read())
hello world
>>> exec(open("C:\\Users\\testuser\\testfolder\\helloworld.py").read())
hello world
>>> os.path.abspath("helloworld.py")
'C:\\Users\\testuser\\testfolder\\helloworld.py'
>>> import helloworld
hello world
Hay una alternativa más (para Windows):
import os
os.system('py "<path of program with extension>"')
En una consola de Python, uno puede probar las siguientes 2 formas.
bajo el mismo directorio de trabajo,
1. >> importar helloworld
# si tiene una variable x , puede imprimirla en IDLE.
>> helloworld.x
# si tiene una función func , también puede llamarla así.
>> helloworld.func ()
2. >> runfile ("./ helloworld.py")
helloworld.py
aspecto tiene ?