Come carico un file nella console di Python?


208

Ho alcune righe di codice Python che sto copiando / incollando continuamente nella console Python. C'è un loadcomando o qualcosa che posso eseguire? per esempioload file.py


15
import file. Nessuna .pyestensione.
Mikel,

1
Quando import fileviene utilizzato, filenon è possibile accedere alle variabili in .
Kadir,

5
In realtà, è possibile accedere alla variabile. Prova file.variable.
Tim Ludwinski,

Risposte:


197

Per Python 2 (vedi altre risposte per Python 3) provalo:

execfile('file.py')

Esempio di utilizzo:

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
Puoi spiegare il tuo utilizzo di copy con? Da quello che sto leggendo viene utilizzato solo per copiare i file computerhope.com/copyhlp.htm
CodyBugstein,

12
Ha copiato dalla console (trattato come un file) in execfile_example.py. ^ Z è la fine del file. È solo un modo per ottenere testo in un file senza aprire un editor.
IJ Kennedy

Vedi la risposta di @Arafangion se non sei ancora nella console.
Barry McNamara,

166

Dalla pagina man:

-i Quando uno script viene passato come primo argomento o viene utilizzata l'opzione -c, accedere alla modalità interattiva dopo aver eseguito lo script o il comando. Non legge il file $ PYTHONSTARTUP. Ciò può essere utile per ispezionare le variabili globali o una traccia dello stack quando uno script solleva un'eccezione.

Quindi questo dovrebbe fare quello che vuoi:

python -i file.py

7
Questo è un ottimo modo di procedere se non sei ancora nella console. Grazie per la segnalazione Arafangion
SomeShinyObject

89

Python 3: nuovo exec (execfile rilasciato) !

La soluzione execfile è valida solo per Python 2. Python 3 ha eliminato la funzione execfile e ha promosso l'istruzione exec in una funzione universale incorporata. Come il commento nel changelog di Python 3.0 e il commento di Hi-Angels suggeriscono:

uso

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

invece di

execfile(<filename.py>)

se il file contiene istruzioni di importazione, ad esempio import os, exec()esegue tali istruzioni? Ci sto provando attualmente e la risposta sembra essere no ...
Rylan Schaeffer,

25

Dalla riga di comando della shell:

python file.py

Dalla riga di comando di Python

import file

o

from file import *

8
E reload(file)quando hai cambiato qualcosa in esso.
Santa

1
Cioè from file import *, noimport * from file
po

1
Il file deve essere un regista specifico? Lo sto provando con il suo percorso completo e non funziona.
CodyBugstein,

import directory.subdirectory.file
Seth

14

Puoi semplicemente usare una dichiarazione di importazione:

from file import *

Quindi, per esempio, se avessi un file chiamato my_script.pylo caricheresti così:

from my_script import *



0

Se la tua pathvariabile di ambiente contiene Python (ad es. C:\Python27\) Puoi eseguire il tuo file py semplicemente dalla riga di comando di Windows (cmd). Howto qui.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.