>>> import subprocess
>>> subprocess.Popen('/usr/bin/gnome-calculator')
<subprocess.Popen object at 0x7f2bcf93b20>

返回值是一个 Popen 对象,它有两个有用的方法:poll()和 wait()。

可以认为 poll() 方法是问你的朋友,她是否执行完毕你给她的代码。如果这个进程在 poll()调用时仍在运行,poll() 方法就返回 None。如果该程序已经终止,它会返回该进程的整数退出代码。退出代码用于说明进程是无错终止(退出代码为 0),还是一个错误导致进程终止(退出代码非零,通常为 1,但可能根据程序而不同)。

wait() 方法就像是等着你的朋友执行完她的代码,然后你继续执行你的代码。 wait()方法将阻塞,直到启动的进程终止。如果你希望你的程序暂停,直到用户完成与其他程序,这非常有用。wait()的返回值是进程的整数退出代码。

用 Popen() 创建进程时,可以向进程传递命令行参数。要做到这一点,向 Popen() 传递一个列表,作为唯一的参数。该列表中的第一个字符串是要启动的程序的可执行文件名,所有后续的字符串将是该程序启动时,传递给该程序的命令行参数。实际上,这个列表将作为被启动程序的 sys.argv 的值。