Yorumlayıcı içinden python komutları içeren bir dosyayı çalıştırmaya çalışıyorum.
EDIT: Bu dosyadaki değişkenleri ve ayarları kullanmaya çalışıyorum, ayrı bir süreci çağırmaya değil.
Python 2 için:
>>> execfile('filename.py')
Python 3 için:
>>> exec(open("filename.py").read())
# or
>>> from pathlib import Path
>>> exec(Path("filename.py").read_text())
Bkz. belgeler. Python 3.0 kullanıyorsanız, bu soruya bakın.
Çalıştırdıktan sonra filename.py dosyasından globale nasıl eriştiğinize dair bir örnek için @S.Lott'un yanıtına bakın.
Birkaç şekilde.
Kabuktan
python someFile.py
IDLE konumundayken F5 tuşuna basın.
Eğer etkileşimli olarak yazıyorsanız, şunu deneyin: (Sadece Python 2!)
>>> variables= {}
>>> execfile( "someFile.py", variables )
>>> print variables # globals from the someFile module
Python3 için kullanın:
>>> exec(open("filename.py").read())
Bu dosyadaki değişkenleri ve ayarları kullanmaya çalışıyorum, ayrı bir süreci çağırmaya değil.
Dosyayı import filename
(eksi .py, aynı dizinde veya PYTHONPATH
üzerinde olması gerekir) ile içe aktarmak, dosyayı çalıştıracak ve değişkenlerini, işlevlerini, sınıflarını vb. filename.variable
ad alanında kullanılabilir hale getirecektir.
Yani spam değişkenine ve eggs fonksiyonuna sahip cheddar.py
dosyanız varsa - bunları import cheddar
ile içe aktarabilir, değişkene cheddar.spam
ile erişebilir ve cheddar.eggs()
çağrısı yaparak fonksiyonu çalıştırabilirsiniz.
Eğer cheddar.py
içinde bir fonksiyonun dışında bir kodunuz varsa, bu kod hemen çalıştırılacaktır, ancak içe aktarıldığında bir şeyler çalıştıran uygulamalar oluşturmak kodunuzu yeniden kullanmanızı zorlaştıracaktır. Mümkünse, her şeyi fonksiyonların veya sınıfların içine koyun.