【发布时间】:2016-12-30 14:13:36
【问题描述】:
我读到this question,其中提问者在使用以下代码在 Python 中运行 bash 时遇到特定问题:
os.system(bashCommand)
前两个答案简单地说:“使用subprocess”(而不是os.system),并给出一个快速的代码示例。
使用 Python 运行 bash 命令的正确方法是什么?为什么?对我来说,os.system 似乎是一个不错的选择,专为此类事物而设计,而另一个问题的提问者无法使用该软件包完成正确的功能只是侥幸。但是,使用subprocess 是“真正的 Pythonic 方式”吗?或者换句话说,os.system和subprocess有什么区别?
【问题讨论】:
-
@JosphHansen 值得注意的是,C 中的
system()函数(os.system()无需更改即可封装)非常、非常旧:它是以前设计的例如,安全问题是一回事,因此没有任何注意将数据从代码中带出。如果担心安全地处理恶意数据,那么它在任何语言中都不是一个好的 API。