我目前正在使用 subprocess.call() 来调用另一个程序,但它会阻塞执行线程,直到该程序完成。有没有办法简单地启动该程序而无需等待返回?
问问题
31606 次
2 回答
67
使用subprocess.Popen
代替subprocess.call
:
process = subprocess.Popen(['foo', '-b', 'bar'])
subprocess.call
是一个包装器,subprocess.Popen
它调用communicate
等待进程终止。另请参阅subprocess.popen 和 subprocess.run 之间有什么区别。
于 2012-06-10T02:23:40.433 回答
0
答案不应该是使用'close_fds'标志吗?
subprocess.Popen(cmd, stdout=None, stderr=None, stdin=None, close_fds=True)
于 2021-07-06T13:20:50.627 回答