有没有办法在python中调用外部程序,而不是等待它的执行完成?
我试过了,但没有运气:
os.system("external_program &")
通常,如果我在bash shell中调用external_program &
,它将作为后台进程执行。
我怎么能在python中做到这一点?因为,我的特殊情况,创建另一个线程不起作用。完成主python脚本后,外部程序应继续执行。
答案 0 :(得分:4)
是的,请使用subprocess
module。例如:
p = subprocess.Popen(['external_program', 'arg1', 'arg2'])
# Process is now running in the background, do other stuff...
...
# Check if process has completed
if p.poll() is not None:
...
...
# Wait for process to complete
p.wait()
答案 1 :(得分:0)
忘掉os.system()
。它已被弃用,以支持subprocess
module。
它为几乎每个可以想象的用例提供了一种执行子程序的方法。