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

时间:2012-08-22 13:27:03

标签: python shell capture

  

可能重复:
  Running shell command from python and capturing the output

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

declare TAGNAME=`git describe --tags` 

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

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

2 个答案:

答案 0 :(得分:6)

尝试:

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

答案 1 :(得分:1)

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

示例:

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

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