[英]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.