¿Cómo cargo un archivo en la consola de Python?

208

Tengo algunas líneas de código de Python que continuamente copio / pego en la consola de Python. ¿Hay un loadcomando o algo que pueda ejecutar? p.ejload file.py

sybind
fuente
15
import file. Sin .pyextensión
Mikel
1
Cuando import filese usa, fileno se puede acceder a las variables en .
Kadir el
55
En realidad, se puede acceder a la variable. Tratar file.variable.
Tim Ludwinski

Respuestas:

197

Para Python 2 (ver otras respuestas para Python 3) intente esto:

execfile('file.py')

Ejemplo de uso:

C:\junk>copy con execfile_example.py
a = [9, 42, 888]
b = len(a)
^Z
        1 file(s) copied.

C:\junk>\python27\python
Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> execfile('execfile_example.py')
>>> a
[9, 42, 888]
>>> b
3
>>>
John Machin
fuente
1
¿Puedes explicar tu uso de copy con? Por lo que estoy leyendo, solo se usa para copiar archivos computerhope.com/copyhlp.htm
CodyBugstein
12
Copió desde la consola (tratada como un archivo) a execfile_example.py. ^ Z es el final del archivo. Es solo una forma de obtener texto en un archivo sin abrir un editor.
IJ Kennedy
Vea la respuesta de @Arafangion si aún no está en la consola.
Barry McNamara
166

Desde la página del manual:

-i Cuando se pasa un script como primer argumento o se usa la opción -c, ingrese al modo interactivo después de ejecutar el script o el comando. No lee el archivo $ PYTHONSTARTUP. Esto puede ser útil para inspeccionar variables globales o un seguimiento de la pila cuando un script genera una excepción.

Entonces esto debería hacer lo que quieras:

python -i file.py
Arafangion
fuente
77
Esta es una excelente manera de hacerlo si aún no está en la consola. Gracias por el consejo Arafangion
SomeShinyObject
89

Python 3: nueva exec (execfile cayó) !

La solución execfile es válida solo para Python 2. Python 3 eliminó la función execfile y promovió la instrucción exec a una función universal integrada. Como el comentario en el registro de cambios de Python 3.0 y el comentario de Hi-Angels sugieren:

utilizar

exec(open(<filename.py>).read())

en vez de

execfile(<filename.py>)
h1618
fuente
si el archivo contiene declaraciones de importación, por ejemplo import os, ¿ exec()ejecuta esas declaraciones? Estoy intentando esto actualmente y la respuesta parece ser no ...
Rylan Schaeffer
25

Desde la línea de comando de shell:

python file.py

Desde la línea de comando de Python

import file

o

from file import *
Fred Foo
fuente
8
Y reload(file)cuando has cambiado algo en eso.
Santa
1
Eso es from file import *, noimport * from file
poco el
1
¿El archivo debe ser un director específico? Lo estoy intentando con su ruta completa y no funciona.
CodyBugstein
import directory.subdirectory.file
Seth
14

Solo puede usar una declaración de importación:

from file import *

Entonces, por ejemplo, si tuviera un archivo llamado my_script.py, lo cargaría así:

from my_script import *
amicitas
fuente
0

Si su pathvariable de entorno contiene Python (por ejemplo C:\Python27\), puede ejecutar su archivo py simplemente desde la línea de comandos de Windows (cmd). Cómo aquí


fuente