subprocess.check_output()没有输出

cyb*_*oac 2 python subprocess

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

output = subprocess.check_output(commandList)
print (len(output))
Run Code Online (Sandbox Code Playgroud)

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

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

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

zwo*_*wol 10

这应该可以工作,但是你正在运行的实际命令(可能不是ls)有可能是错误的并且将所有输出发送到stderr而不是stdout.尝试

output = subprocess.check_output(commandList, stderr=subprocess.STDOUT)
Run Code Online (Sandbox Code Playgroud)