18
的Python manual只字未提是否os.system("cmd")
等待与否的进程结束:Python的os.system()是否等待进程的结束?
引述手册:
在子shell中执行命令(一个字符串)。
看起来它确实在等待(与Perl的system
行为相同)。它是否正确?
的Python manual只字未提是否os.system("cmd")
等待与否的进程结束:Python的os.system()是否等待进程的结束?
引述手册:
在子shell中执行命令(一个字符串)。
看起来它确实在等待(与Perl的system
行为相同)。它是否正确?
是的。调用的返回值是子进程的退出代码。
该手册没有明确指出,但它确实意味着它通过说返回值是程序的返回值来等待进程的结束。
所以要回答你的问题,是的,它没有等待。
py3.x仍然如此吗? http://stackoverflow.com/questions/14059558/why-is-python-no-longer-waiting-for-os-system-to-finish – alvas
是的,但人们根本不应该使用os.system。使用子进程包,可能是其中一个辅助函数:call,check_call,check_output。 –
在python 3.5调用中,check_call和check_output已被替换为运行函数。 –