捕获shell执行输出的简单python命令?

Simple python command to capture shell execution output?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Running shell command from python and capturing the output

当我想要捕获shell执行输出时,我会这样做。

1
declare TAGNAME=`git describe --tags`

简单。我在python中寻找这个,但是大多数看起来非常复杂。最简单的方法是什么?是的,我知道我可以做一个函数,但是我想知道一个预定义的函数,如果它存在的话。

1
tagname = theFunc('git describe --tags')


尝试:

1
2
>>> import subprocess
>>> tagname = subprocess.check_output('git describe --tags'.split())


您应该看看子流程模块。您也可以用它捕获命令的输出。手册页中有许多如何使用模块的示例。

例子:

1
2
output=subprocess.Popen(["ps","aux"], stdout=subprocess.PIPE,
    stderr=subprocess.PIPE).communicate()

结果是从命令捕获了一个具有stdout和stderr的元组。