可能重复:
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命令的输出)捕获到变量中,以便稍后再次使用它。我该怎么做?
答案 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'