Python 的 os.system() 会等待进程结束吗?

34 投票
3 回答
45987 浏览
提问于 2025-04-17 06:56

Python手册上并没有说明os.system("cmd")是否会等待一个进程结束:

手册中是这么说的:

在一个子shell中执行命令(一个字符串)。

看起来它确实会等待(和Perl的system表现一样)。这样说对吗?

3 个回答

3

在Mac上它会等待,但在Linux上就不会(使用的是Debian,python 3.7.3)。

通过使用subprocess解决了这个问题:

import subprocess

subprocess.run("cmd")
15

手册里没有明确说明,但它暗示了这个过程会等到结束,因为它提到返回值是程序的返回值。

所以,回答你的问题,是的,它确实会等待。

37

是的,确实如此。这个调用的返回值是子进程的退出代码。

撰写回答