我读到了这个问题,其中提问者使用如下代码在Python中运行bash时遇到了特定的问题:
os.system(bashCommand)
前两个答案简单地说:“使用subprocess
”(而不是os.system
),并给出了一个快速的代码示例。
什么是使用Python运行bash命令的正确方法,为什么?对我来说,os.system
是一个很好的选择,专门设计用于这种类型的事情,只是另一个问题的提问者无法通过该软件包实现正确的功能。但是,“真正的Pythonic方式”是使用subprocess
吗?换句话说,os.system
和subprocess
之间有什么区别?
system()
函数(os.system()
没有进行任何更改地包装)非常古老:例如,在安全问题成为一个问题之前就设计了它,因此没有注意到将数据与代码分离。如果关心安全地处理恶意数据,则在任何语言中都不是一个好的API。 - Charles Duffy