2010-01-07 21 views

cevap

11

Python 2'de, yerleşik işlev execfile bunu yapar. Eğer (ben çok interaktif piton oturumları için tavsiye) ipython çalıştırıyorsanız

execfile(filename) 
+2

python'u sevmeniz gerekir. Python: execfile'da * * bir * dosya * yürütme * nasıl? \t def __call __ (self, dosya adı, globaller = Yok, halk = Yok): \t \t ithalat piton 3'te –

+0

o t Bu içe aktarma sistemleri gibi bunun için sınıf işlemini() Kendi modülü kullanmak zorunda çalışmak etmiyor sys \t \t Yok küreseller ise: halk Yok eğer \t \t \t küreseller = sys._getframe (1) \t \t .f_globals: \t \t \t yerli = sys._getframe (1) \t.f_locals Açık fh olarak (dosya adı, "r") olan: \t \t \t exec (fh.read() + "\ n", globaller, halk) sys.modules [__ name__] = İşlem() – jamk

+2

Evet, execfile() 'Python 3'te gitti. Bkz. [Python 3.0'da execfile seçeneğinin alternatifi nedir?] (http://stackoverflow.com/questions/436198/what-is-an-alternative-to-execfile-in -python-3-0) –

3

yazabilirsiniz:

%run filename 

veya

%run filename.py 

modülünü çalıştırmak için (yerine ithal etmek). ReallyLongModuleName.py için harika olan dosya-adı tamamlamayı alacaksınız (modüllerinizi böyle bir şey ya da herhangi bir şey olarak adlandırmayacaksınız).

+0

öneri için teşekkürler, ben genellikle ipython kullanın, ama bu görev için acımasızca Ctypes üzerinden python denilen bir C kütüphanesi hata ayıklamak için gerekli. Bu yüzden python binary'sini gdb'ye yüklemem, çalıştır, ctipleri içe aktar, kütüphaneyi yükle, yük adresini yaz, gdb'ye kır, kütüphane sembollerini ekle, kesme noktalarını ayarla, python'u çalıştırmaya devam et ve nihayet modülü yükle. ipython kullanarak, gdb'ye doğrudan yüklenebilen bir ikili değil, başka bir python betiği :-) olduğu için, fazladan bir adım eklenirdi. – fortran

İlgili konular