Python命令执行输出

时间:2011-07-18 17:13:07

标签: python

  

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

我想将命令的输出捕获到变量中,以便稍后可以再次使用该变量。我需要更改此脚本,以便它执行此操作:

#!/usr/bin/python
import os
command = raw_input("Enter command: ")
os.system(command)

如果我在运行此脚本时输入“ls”,我会得到此输出:

Documents Downloads Music Pictures Public Templates Videos

我想将该字符串(ls命令的输出)捕获到变量中,以便稍后再次使用它。我该怎么做?

3 个答案:

答案 0 :(得分:9)

import subprocess
command = raw_input("Enter command: ")
p = subprocess.Popen(command, stdout=subprocess.PIPE)
output, error = p.communicate()

答案 1 :(得分:2)

可以使用subprocess模块捕获命令的输出,特别是check_output函数..

output = subprocess.check_output("ls")

另请参阅subprocess.Popen的文档,了解check_output所需的参数列表。

答案 2 :(得分:0)

这是我过去做过的方式。

>>> import popen2
__main__:1: DeprecationWarning: The popen2 module is deprecated.  Use the subprocess module.
>>> exec_cmd = popen2.popen4("echo shell test")
>>> output = exec_cmd[0].read()
>>> output
'shell test\n'