I'm mencoba untuk mengeksekusi file dengan perintah-perintah python dari dalam penerjemah.
EDIT: I'm mencoba untuk menggunakan variabel dan pengaturan dari file tersebut, bukan untuk memohon proses yang terpisah.
Untuk Python Versi 2:
>>> execfile('filename.py')
Untuk Python 3:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
Lihat dokumentasi. Jika anda menggunakan Python 3.0, lihat ini question.
Lihat jawaban oleh @S. Lott untuk contoh bagaimana anda akses dari globals filename.py setelah melaksanakan hal itu.
Beberapa cara.
Dari shell
python someFile.py
Dari dalam SIAGA, tekan F5.
Jika anda're mengetik secara interaktif, coba ini: (Python 2 hanya!)
>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module
Untuk Python3, gunakan:
>>> exec(open("filename.py").read())
exec(open("./path/to/script.py").read(), globals())
Ini akan mengeksekusi sebuah script dan menempatkan semua itu's variabel global di interpreter's lingkup global (perilaku normal di sebagian besar lingkungan scripting).
Terkejut aku belum't melihat ini belum. Anda dapat mengeksekusi sebuah file dan kemudian meninggalkan penerjemah terbuka setelah eksekusi berakhir menggunakan aku
pilihan:
| foo.py |
----------
testvar = 10
def bar(bing):
return bing*3
--------
$ python -i foo.py
>>> testvar
10
>>> bar(6)
18
I'm mencoba untuk menggunakan variabel dan pengaturan dari file tersebut, bukan untuk memohon proses yang terpisah.
Yah, hanya mengimpor file dengan impor filename
(minus .py, harus berada dalam direktori yang sama atau pada PYTHONPATH
) akan menjalankan file, membuat variabel, fungsi, kelas, dll. tersedia dalam nama berkas.variabel
namespace.
Jadi jika anda memiliki cheddar.py
dengan variabel spam dan fungsi telur – anda dapat mengimpor mereka dengan impor cheddar
, mengakses variabel dengan cheddar.spam
dan menjalankan fungsi dengan memanggil cheddar.telur()
Jika anda memiliki kode cheddar.py
yang berada di luar fungsi, maka akan segera berjalan, tapi membangun aplikasi yang berjalan barang-barang impor akan membuat sulit untuk menggunakan kembali kode anda. Jika memungkinkan, menempatkan segala sesuatu di dalam fungsi atau kelas.
Saya bukan ahli tapi ini adalah apa yang saya perhatikan:
jika kode anda mycode.py misalnya, dan anda mengetik hanya 'impor mycode', Python akan mengeksekusi, tapi itu tidak akan membuat anda semua variabel yang tersedia untuk penerjemah. Saya menemukan bahwa anda harus benar-benar 'dari mycode impor *' jika anda ingin membuat semua variabel yang tersedia untuk penerjemah.
Dari pandangan saya, cara terbaik adalah:
import yourfile
dan setelah memodifikasi yourfile.py
reload(yourfile)
atau
import imp;
imp.reload(yourfile) in python3
tapi hal ini akan membuat fungsi dan kelas-kelas terlihat seperti itu: yourfile.function1, yourfile.class1.....
Jika anda tidak bisa menerima mereka, akhirnya solusinya adalah:
reload(yourfile)
from yourfile import *
Untuk Python 3:
>>> exec(open("helloworld.py").read())
Pastikan bahwa anda're di direktori yang benar sebelum menjalankan perintah.
Untuk menjalankan file dari direktori yang berbeda, anda dapat menggunakan perintah di bawah ini:
with open ("C:\\Users\\UserName\\SomeFolder\\helloworld.py", "r") as file:
exec(file.read())
Lakukan saja,
from my_file import *
Pastikan untuk tidak menambahkan .py ekstensi. Jika anda .py file dalam subdirektori yang digunakan,
from my_dir.my_file import *