Jak załadować plik do konsoli python?

208

Mam kilka wierszy kodu Pythona, które ciągle kopiuję / wklejam do konsoli Pythona. Czy istnieje loadpolecenie lub coś, co mogę uruchomić? na przykładload file.py

sybind
źródło
15
import file. Bez .pyrozszerzenia.
Mikel
1
Gdy import filejest używany, filenie można uzyskać dostępu do zmiennych w .
Kadir
5
W rzeczywistości można uzyskać dostęp do zmiennej. Spróbować file.variable.
Tim Ludwinski

Odpowiedzi:

197

W przypadku Python 2 (zobacz inne odpowiedzi dla Python 3) spróbuj:

execfile('file.py')

Przykładowe użycie:

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
źródło
1
Czy możesz wyjaśnić swoje użycie copy con? Z tego, co czytam, służy tylko do kopiowania plików computerhope.com/copyhlp.htm
CodyBugstein
12
Skopiował z konsoli (traktowany jak plik) do pliku_pliku_wykonywalnego.py. ^ Z to koniec pliku. To tylko sposób na umieszczenie tekstu w pliku bez otwierania edytora.
IJ Kennedy
Zobacz odpowiedź z @Arafangion, jeśli nie jesteś jeszcze w konsoli.
Barry McNamara
166

Ze strony podręcznika:

-i Gdy skrypt zostanie przekazany jako pierwszy argument lub zostanie użyta opcja -c, wejdź w tryb interaktywny po wykonaniu skryptu lub polecenia. Nie odczytuje pliku $ PYTHONSTARTUP. Może to być przydatne do sprawdzania zmiennych globalnych lub śledzenia stosu, gdy skrypt zgłasza wyjątek.

To powinno zrobić, co chcesz:

python -i file.py
Arafangion
źródło
7
To świetny sposób, jeśli nie jesteś jeszcze w konsoli. Dzięki za wskazówkę Arafangion
SomeShinyObject
89

Python 3: nowy exec (plik wykonywalny usunięty) !

Rozwiązanie pliku wykonywalnego działa tylko w języku Python 2. Python 3 porzucił funkcję pliku wykonywalnego - i wypromował instrukcję exec do wbudowanej funkcji uniwersalnej. Jak sugeruje komentarz w dzienniku zmian Pythona 3.0 i komentarzu Hi-Angels:

posługiwać się

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

zamiast

execfile(<filename.py>)
h1618
źródło
jeśli plik zawiera np. instrukcje importu import os, czy exec()wykonuje te instrukcje? Próbuję tego obecnie i wydaje się, że odpowiedź brzmi nie ...
Rylan Schaeffer
25

Z linii poleceń powłoki:

python file.py

Z wiersza polecenia Python

import file

lub

from file import *
Fred Foo
źródło
8
A reload(file)kiedy coś w tym zmieniłeś.
Santa
1
To from file import *nie jestimport * from file
proszę
1
Czy plik musi być w określonym reżyserze? Próbuję z pełną ścieżką i nie działa.
CodyBugstein
import directory.subdirectory.file
Seth
14

Możesz po prostu użyć instrukcji importu:

from file import *

Na przykład, jeśli masz plik o nazwie my_script.py, załadujesz go tak:

from my_script import *
amicitas
źródło
3

Otwórz wiersz polecenia w folderze, w którym znajdują się pliki do zaimportowania. po wpisaniu „python” zostanie otwarty terminal python. Teraz możesz użyć

importuj nazwę skryptu
Uwaga: brak rozszerzenia .py do użycia podczas importowania.
Jak mogę otworzyć okno cmd w określonej lokalizacji?

nieskończoność
źródło
0

Jeśli twoja pathzmienna środowiskowa zawiera Python (np. C:\Python27\), Możesz uruchomić plik py po prostu z wiersza poleceń systemu Windows (cmd). Howto tutaj.


źródło