Python subprocess.popen() 无需等待
Python subprocess.popen() without waiting
我在 Windows 上使用 Python 3.4.2。在 script1.py 我正在这样做:
myProc = subprocess.Popen([sys.executable, "script2.py", "argument"])
myProc.communicate()
有效并调用 script2.py。
问题是在 script2.py 中有一个无限循环(必须有)并且 script1.py 正在等待 script2.py 完成。我如何告诉 script1.py 只调用 script2.py 而不要等待进程完成?
如果您不想等待,请不要拨打 myProc.communicate()
。 subprocess.Popen
将启动进程。
在另一个window中调用脚本。
myProc = subprocess.Popen(["start", sys.executable, "script2.py", "argument"])
myProc.communicate()
start
是一个 windows shell 函数,它单独运行一个程序,允许当前程序继续其进程。我没有对此进行测试,因为我无法访问 Windows OS,但是 linux 等效项 (nohup
) 可以按要求工作。
如果您需要对 script2.py 发生的情况进行精细控制,请参阅 multiprocessing
模块 here。
我在 Windows 上使用 Python 3.4.2。在 script1.py 我正在这样做:
myProc = subprocess.Popen([sys.executable, "script2.py", "argument"])
myProc.communicate()
有效并调用 script2.py。 问题是在 script2.py 中有一个无限循环(必须有)并且 script1.py 正在等待 script2.py 完成。我如何告诉 script1.py 只调用 script2.py 而不要等待进程完成?
如果您不想等待,请不要拨打 myProc.communicate()
。 subprocess.Popen
将启动进程。
在另一个window中调用脚本。
myProc = subprocess.Popen(["start", sys.executable, "script2.py", "argument"])
myProc.communicate()
start
是一个 windows shell 函数,它单独运行一个程序,允许当前程序继续其进程。我没有对此进行测试,因为我无法访问 Windows OS,但是 linux 等效项 (nohup
) 可以按要求工作。
如果您需要对 script2.py 发生的情况进行精细控制,请参阅 multiprocessing
模块 here。