2016-04-06 27 views
0

Şu anda ben bir komut dosyası olarak bir kütüphane modül olarak oluşturulan bir piton dosyasını çalıştırıp Daha spesifik bir komut satırı argüman geçirerek, bir piton dosyasını çalıştırıyorum yolu şimdiPython Kitaplığı Modülünü başka bir python dosyasından komut dosyası olarak nasıl çalıştırılır? (Python 3.5.1)

python3 -m path.to.python.file --option1=OPTION_VALUE

olduğunu

Aslında bu dosyalardan birkaç tane var ve bunları farklı bir python dosyasından çalıştırmak istiyorum. Bunu nasıl yapardım? Daha kolay hale getirirse, option1 bağımsız değişkeninin değeri hepsi için aynıdır.

Benzer konularla ilgili diğer birçok StackOverflow yayınını gördüm, ancak bunların hiçbiri bir python dosyasını bir kitaplık modülü olarak bir komut dosyası olarak çalıştırmayla ilgili görünmüyor.

DÜZENLEME: Sanırım bir cevap buldum. Aşağıdaki yapıyor sona erdi:

subprocess.Popen(['python3', '-m', 'path.to.python.file', '--option1=OPTION_VALUE']) 

Bu bunu yapmanın en iyi yolu olmayabilir:

p = subprocess.Popen(['python3', '-m', 
          'path.to.file', 
          '--option1=OPTION1_VALUE']) 
    p.communicate() 

cevap

0

bir yolu subprocess kullanmak ve sadece ayrı programlar olarak hepsini çalıştırmaktır. Modüllerin nasıl yapılandırıldığına bağlı olarak, bunları import yapabileceksiniz ve bazı işlevleri (komut satırından ne olduğu) içinde arayabileceksiniz. Ancak, bu modüllerin yapısını görmeden, bunu nasıl yapabileceğiniz konusunda açık bir tavsiyede bulunmak zordur.

+0

Harika! Bu neredeyse benim için çalışıyor. Bu yüzden benim durumumun tam olarak benim durumuma uymaması sebebi, temelde bir sürü dosyayı sırayla çalıştırmak istiyorum. Bazıları SQL betikleridir ve bazıları Python dosyalarıdır (Her ikisi de bir Veritabanında tablolar oluşturur. Python dosyaları için sqlalchemy/pandaları kullanırım). Bu dosyaları belirli bir sırayla çalıştırmak istiyorum. "Altprocess.Popen" kullandığımda sanki her zaman Python dosyalarını en sonunda çalıştırıyormuş gibi görünüyor. Bunu yapmam için bir yol var mı, ancak dosyaları sırayla çalıştırabilecek miyim? – Vincent

İlgili konular