我最近遇到了一些有关堆栈溢出的帖子,说子进程比os.system好得多,但是我很难找到确切的优点.
我遇到的一些例子:https: //docs.python.org/3/library/os.html#os.system
"子进程模块提供了更强大的工具来生成新进程并检索其结果;使用该模块比使用此函数更可取."
不知道它在哪些方面更强大,我知道在很多方面使用子进程更容易,但实际上它在某种程度上更强大吗?
另一个例子是:
子进程与系统的优点是它更灵活(你可以得到stdout,stderr,"真正的"状态代码,更好的错误处理等等).
这篇帖子有2600多张选票.再一次找不到更好的错误处理或真实状态代码意味着什么.
该帖子的最高评论是:
无法理解为什么你使用os.system即使是快速/脏/一次性.子进程看起来好多了.
同样,我理解它使一些事情稍微容易些,但我几乎无法理解为什么例如:
subprocess.call("netsh interface set interface \"Wi-Fi\" enable", shell=True)
Run Code Online (Sandbox Code Playgroud)
比任何更好
os.system("netsh interface set interface \"Wi-Fi\" enabled")
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释一些它更好的原因吗?