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已被替換爲運行函數。 –