使用subprocess.call执行python文件?
我正在使用使用subprocess.call执行python文件?,python,python-3.x,python-2.7,subprocess,Python,Python 3.x,Python 2.7,Subprocess,我正在使用subprocess.call来执行另一个python文件。考虑到将被调用的脚本永远不会终止执行,因为它位于无限循环中,我如何使原始脚本能够在子流程调用后继续执行 例如: 我有script1.py,它执行一些计算,然后使用子流程调用([“python”,“script2.py”])调用script2.py,因为它位于无限循环中,script1在执行时会卡住,除了使用子流程模块,还有其他方法运行文件吗?子流程调用([“python”,“script2.py”]))等待子流程完成 只需使用
subprocess.call
来执行另一个python文件。考虑到将被调用的脚本永远不会终止执行,因为它位于无限循环中,我如何使原始脚本能够在子流程调用后继续执行
例如:
我有script1.py,它执行一些计算,然后使用子流程调用([“python”,“script2.py”])
调用script2.py,因为它位于无限循环中,script1在执行时会卡住,除了使用子流程模块,还有其他方法运行文件吗?子流程调用([“python”,“script2.py”]))
等待子流程完成
只需使用:
您可以稍后执行proc.poll()
以查看它是否完成,或者执行proc.wait()
以等待它完成(就像call
所做的那样),或者干脆忘记它,改为执行其他操作
顺便说一句,您可能希望确保调用相同的python
,并且操作系统可以通过使用而不仅仅是“python”
来找到它:
您可以在将来或第二个线程或类似的东西上推送响应,然后忘记它吗?不需要为此使用
子流程
。拥有script1.py
importscript2
并调用其主函数。
proc = subprocess.Popen(["python", "script2.py"])
subprocess.Popen([sys.executable, "script2.py"])