[英]Using subprocess.call to execute python file?
我正在使用subprocess.call
來執行另一個python文件。 考慮到將要調用的腳本永遠不會終止執行,因為它處於無限循環內,我如何才能使原始腳本在子流程調用后繼續執行?
示例:我有script1.py,該腳本執行一些計算,然后使用subprocess.call subprocess.call(["python", "script2.py"])
調用script2.py,因為它在無限循環內,script1在執行時卡住了除了使用子進程模塊以外,另一種運行文件的方式?
subprocess.call(["python", "script2.py"])
等待子進程完成。
只需使用Popen
:
proc = subprocess.Popen(["python", "script2.py"])
稍后您可以執行proc.poll()
來查看它是否完成,或者可以proc.wait()
來等待它完成(就像call
一樣),或者只是忘掉它而做其他事情。
順便說一句,您可能想確保使用sys.executable
而不是僅僅使用"python"
來調用相同的python
,並且操作系統可以找到它:
subprocess.Popen([sys.executable, "script2.py"])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.