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


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

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

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

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 *

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 *



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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.