subprocess.check_output()没有输出

时间:2014-07-07 13:24:14

标签: python subprocess

我试图在Python 2.7.5中运行以下代码:

output = subprocess.check_output(commandList)
print (len(output))

我的命令列表是一个参数列表,如:[' ls',' -l']。

但是,即使我有一个很长的输出字符串,我得到的输出长度为0。 check_output虽然可以正常工作,因为我可以看到在stdout(控制台)中运行的进程的结果。

理想的用例是运行子进程,隐藏stdout(在控制台中看不见),解析输出字符串并提取一些相关信息。

1 个答案:

答案 0 :(得分:8)

这应该可行,但您可能正在运行的实际命令(可能不是ls)有问题并将其所有输出发送到stderr stdout。尝试

output = subprocess.check_output(commandList, stderr=subprocess.STDOUT)