我试图在Python 2.7.5中运行以下代码:
output = subprocess.check_output(commandList)
print (len(output))
我的命令列表是一个参数列表,如:[' ls',' -l']。
但是,即使我有一个很长的输出字符串,我得到的输出长度为0。 check_output虽然可以正常工作,因为我可以看到在stdout(控制台)中运行的进程的结果。
理想的用例是运行子进程,隐藏stdout(在控制台中看不见),解析输出字符串并提取一些相关信息。
答案 0 :(得分:8)
这应该可行,但您可能正在运行的实际命令(可能不是ls
)有问题并将其所有输出发送到stderr
stdout
。尝试
output = subprocess.check_output(commandList, stderr=subprocess.STDOUT)