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

sybind
quelle
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
>>>
John Machin
quelle
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
Arafangion
quelle
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>)
h1618
quelle
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 *
Fred Foo
quelle
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 *
Amicitas
quelle
3

Öffnen Sie die Eingabeaufforderung in dem Ordner, in den Ihre zu importierenden Dateien vorhanden sind. Wenn Sie 'python' eingeben, wird das Python-Terminal geöffnet. Jetzt können Sie verwenden

Skriptname importieren
Hinweis: Beim Importieren darf keine .py-Erweiterung verwendet werden.
Wie kann ich ein Cmd-Fenster an einem bestimmten Ort öffnen?

Unendlichkeit
quelle
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.


quelle