¿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


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
>>>

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

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>)

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 *

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 *



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í

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.