使用subprocess.call执行python文件?

时间:2019-03-18 21:04:28

标签: python python-3.x python-2.7 subprocess

我正在使用subprocess.call来执行另一个python文件。考虑到将要调用的脚本将永远不会终止执行,因为它处于无限循环内,我如何才能使原始脚本在子流程调用之后继续执行?

示例: 我有script1.py,它会进行一些计算,然后使用subprocess.call(["python", "script2.py"])来调用script2.py,因为它在无限循环内,script1被执行卡住了,除了使用子进程模块之外,还有另一种方法来运行文件吗? / p>

1 个答案:

答案 0 :(得分:1)

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"])