Bagaimana cara memuat file ke konsol python?

208

Saya memiliki beberapa baris kode python yang terus saya salin / tempelkan ke konsol python. Apakah ada loadperintah atau sesuatu yang bisa saya jalankan? misalnyaload file.py

sybind
sumber
15
import file. Tidak ada .pyekstensi.
Mikel
1
Saat import filedigunakan, variabel dalam filetidak dapat diakses.
Kadir
5
Sebenarnya, variabel dapat diakses. Coba file.variable.
Tim Ludwinski

Jawaban:

197

Untuk Python 2 (lihat jawaban lain untuk Python 3) coba ini:

execfile('file.py')

Contoh penggunaan:

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
sumber
1
Bisakah Anda jelaskan penggunaannya copy con? Dari apa yang saya baca itu hanya digunakan untuk menyalin file computerhope.com/copyhlp.htm
CodyBugstein
12
Dia menyalin dari konsol (diperlakukan sebagai file) ke execfile_example.py. ^ Z adalah akhir dari file. Ini hanya cara untuk memasukkan teks ke file tanpa membuka editor.
IJ Kennedy
Lihat jawaban dari @Arafangion jika Anda belum berada di konsol.
Barry McNamara
166

Dari halaman manual:

-i Ketika skrip diteruskan sebagai argumen pertama atau opsi -c digunakan, masuk ke mode interaktif setelah mengeksekusi skrip atau perintah. Itu tidak membaca file $ PYTHONSTARTUP. Ini berguna untuk memeriksa variabel global atau jejak stack saat skrip memunculkan eksepsi.

Jadi ini harus melakukan apa yang Anda inginkan:

python -i file.py
Arafangion
sumber
7
Ini cara yang bagus untuk digunakan jika Anda belum di konsol. Terima kasih atas tipnya Arafangion
SomeShinyObject
89

Python 3: exec baru (execfile turun) !

Solusi execfile hanya valid untuk Python 2. Python 3 menjatuhkan fungsi execfile - dan mempromosikan pernyataan exec ke fungsi universal builtin. Seperti komentar dalam komentar Python 3.0 changelog dan Hi-Angels menyarankan:

menggunakan

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

dari pada

execfile(<filename.py>)
h1618
sumber
jika file tersebut berisi pernyataan impor mis. import os, apakah exec()menjalankan pernyataan itu? Saya sedang mencoba ini saat ini dan jawabannya tampaknya tidak ...
Rylan Schaeffer
25

Dari baris perintah shell:

python file.py

Dari baris perintah Python

import file

atau

from file import *
Fred Foo
sumber
8
Dan reload(file)ketika Anda telah mengubah sesuatu di dalamnya.
Santa
1
Itu from file import *, tidakimport * from file
hati
1
Apakah file harus dalam direktur khusus? Saya mencobanya dengan path lengkapnya dan tidak berfungsi.
CodyBugstein
import directory.subdirectory.file
Seth
14

Anda bisa menggunakan pernyataan impor:

from file import *

Jadi, misalnya, jika Anda memiliki file bernama my_script.pyAnda akan memuatnya seperti ini:

from my_script import *
amicitas
sumber
0

Jika pathvariabel lingkungan Anda berisi Python (mis. C:\Python27\) Anda dapat menjalankan file py Anda hanya dari baris perintah Windows (cmd). Bagaimana caranya di sini.


sumber