从子进程打印 popen stdout 时出现问题

Problem printing popen stdout from subprocess

我需要把输出命令放到一个变量中。 我在尝试这个:

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.

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

print(output.stdout.read())

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

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