【问题标题】:execute linux shell command from python script从 python 脚本执行 linux shell 命令
【发布时间】:2017-10-16 10:21:36
【问题描述】:

我有一个包含 Linux shell 命令的 python 脚本。我正在使用subprocess.check_output。我的问题是关于从os.system() 之类的python 脚本执行Linux shell 命令的更快python 方法。

【问题讨论】:

  • 抱歉,您的问题是什么?哪个更快? os.system 有生成 shell 的开销(而且很容易不安全地使用),所以它可能更慢,但你可以对其进行基准测试。
  • 我的问题是执行 linux shell 命令更快的 python 方法是什么
  • 它是subprocess.check_output,所以继续使用它。如果你发现自己有两个这样的选择……time them.
  • 好的,谢谢你的帮助:)

标签: python linux python-2.7


【解决方案1】:
  • 我喜欢 subprocess.Popen,但是如果你在命令行中有一个 '>',它处理 '>' ==> 有麻烦(也许它不能)
  • 否则 subprocess.check_output

【讨论】:

    【解决方案2】:

    更好的方法:

    from subprocess import call
    call('ls')
    

    请检查: https://docs.python.org/2/library/subprocess.html

    【讨论】: