Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用subprocess.call执行python文件?_Python_Python 3.x_Python 2.7_Subprocess - Fatal编程技术网

使用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
import
script2
并调用其主函数。
proc = subprocess.Popen(["python", "script2.py"])
subprocess.Popen([sys.executable, "script2.py"])