我希望運行一個python腳本,該腳本從另一個python腳本獲取選項和參數。從另一個腳本運行python腳本
For example run C:\\code\\old_start_training_generic_depth.py -i 10 -l 2 from C:\\code\\start.py
我希望運行一個python腳本,該腳本從另一個python腳本獲取選項和參數。從另一個腳本運行python腳本
For example run C:\\code\\old_start_training_generic_depth.py -i 10 -l 2 from C:\\code\\start.py
C:\代碼\ start.py:
import subprocess
subprocess.Popen(["python", r"C:\code\old_start_training_generic_depth.py", "-i", "10", "-l", "2"])
你可以做,使用subprocess.Popen
,可用於從您的Python代碼運行任何外部程序(包括其他的Python程序)。
這就是說,我會這樣做,否則。由於這兩個程序都是用Python編寫的,因此我會將要調用的程序打包爲可通過編程方式調用(即導入並調用)的模塊,而不是將其稱爲子進程。這可能會帶來一些小的開發成本,但最終我相信它會爲自己付出代價,因爲這種方法有很多優點。
+1給了所需要的答案,以及這是問的人。 – Johnsyweb 2011-05-16 09:49:06
import subprocess
subprocess.Popen(['C:\\code\\old_start_training_generic_depth.py', '-i', '10', '-l', '2']).wait()
你不只是'溝通()'並扔掉結果。 – 2011-05-16 09:48:17
# once upon a time somewhere in the start.py
os.system("python C:\\code\\old_start_training_generic_depth.py -i 10 -l 2")
import subprocess
def runscript():
'''
Run a script
'''
cmd_list = ["python", r"C:\code\old_start_training_generic_depth.py", \
"-i", "10", "-l", "2"]
pipe = subprocess.Popen(cmd_list, stdin=subprocess.PIPE, \
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
stdout, stderr = pipe.communicate()
retcode = pipe.poll()
return (retcode, stdout, stderr)
儘管爲了應付系統中安裝的多個Python版本,通常使用'sys.executable'而不是使用硬編碼'「python」''更好。 – ncoghlan 2011-05-16 11:44:08