从子流程打印问题弹出标准输出

时间:2018-09-20 15:51:39

标签: python popen python-2.6 fdopen

我需要将输出命令放入变量。 我正在尝试:

import os
import subprocess

output = subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE)
print (output.stdout)

output.terminate()

但是我明白了

'open file '<fdopen>', mode 'rb' at 0xb76db5a0>'

出什么问题了?可以吗?

我使用python 2.6.6。

1 个答案:

答案 0 :(得分:0)

output.stdout是文件对象。您可以使用文件对象的read方法来获取输出的内容:

print(output.stdout.read())

或者您也可以使用Popen.communicate方法:

stdout, stderr = output.communicate()
print(stdout)