3

可能重复:
从 python 运行 shell 命令并捕获输出

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

declare TAGNAME=`git describe --tags` 

简单的。我在 Python 中寻找过这个,但它们中的大多数看起来都非常复杂。最简单的方法是什么?是的,我知道我可以创建一个函数,但我想知道预定义函数是否存在。

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

2 回答 2

6

尝试:

>>> import subprocess
>>> tagname = subprocess.check_output('git describe --tags'.split())
于 2012-08-22T13:29:59.720 回答
1

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

例子:

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

结果是从命令中捕获的带有 stdout 和 stderr 的元组。

于 2012-08-22T13:31:09.477 回答