Wie lade ich eine Datei in die Python-Konsole?


208

Ich habe einige Zeilen Python-Code, die ich kontinuierlich in die Python-Konsole kopiere / einfüge. Gibt es einen loadBefehl oder etwas, das ich ausführen kann? z.Bload file.py


15
import file. Keine .pyVerlängerung.
Mikel

1
Bei import fileVerwendung filekann nicht auf Variablen in zugegriffen werden.
Kadir

5
Tatsächlich kann auf Variablen zugegriffen werden. Versuchen Sie es file.variable.
Tim Ludwinski

Antworten:


197

Probieren Sie Python 2 (siehe andere Antworten für Python 3) aus:

execfile('file.py')

Anwendungsbeispiel:

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
Können Sie Ihre Verwendung von erklären copy con?
Nach dem,

12
Er kopierte von der Konsole (als Datei behandelt) nach execfile_example.py. ^ Z ist das Dateiende. Es ist nur eine Möglichkeit, Text in eine Datei zu bringen, ohne einen Editor zu öffnen.
IJ Kennedy

Sehen Sie die Antwort von @Arafangion, wenn Sie noch nicht in der Konsole sind.
Barry McNamara

166

Von der Manpage:

-i Wenn ein Skript als erstes Argument übergeben wird oder die Option -c verwendet wird, wechseln Sie nach Ausführung des Skripts oder des Befehls in den interaktiven Modus. Die Datei $ PYTHONSTARTUP wird nicht gelesen. Dies kann nützlich sein, um globale Variablen oder einen Stack-Trace zu untersuchen, wenn ein Skript eine Ausnahme auslöst.

Das sollte also tun, was Sie wollen:

python -i file.py

7
Dies ist ein guter Weg, wenn Sie noch nicht in der Konsole sind. Vielen Dank für den Tipp Arafangion
SomeShinyObject

89

Python 3: neue Exec (Execfile gelöscht) !

Die Execfile-Lösung ist nur für Python 2 gültig. Python 3 hat die Execfile-Funktion gelöscht - und die exec-Anweisung zu einer integrierten Universalfunktion heraufgestuft. Wie der Kommentar im Änderungsprotokoll von Python 3.0 und der Kommentar von Hi-Angels nahe legen:

verwenden

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

anstatt

execfile(<filename.py>)

Wenn die Datei Importanweisungen enthält, z. B. import oswerden exec()diese Anweisungen ausgeführt? Ich versuche das gerade und die Antwort scheint nein zu sein ...
Rylan Schaeffer

25

Über die Shell-Befehlszeile:

python file.py

Über die Python-Befehlszeile

import file

oder

from file import *

8
Und reload(file)wenn Sie etwas daran geändert haben.
Santa

1
Das ist from file import *nichtimport * from file
irgendwie

1
Muss die Datei ein bestimmter Director sein? Ich versuche es mit seinem vollen Weg und es funktioniert nicht.
CodyBugstein

import directory.subdirectory.file
Seth

14

Sie können einfach eine Importanweisung verwenden:

from file import *

Wenn Sie beispielsweise eine Datei mit dem Namen my_script.pyhaben, laden Sie sie folgendermaßen:

from my_script import *



0

Wenn Ihre pathUmgebungsvariable Python enthält (z. B. C:\Python27\), können Sie Ihre py-Datei einfach über die Windows-Befehlszeile (cmd) ausführen. Howto hier.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.