从子流程打印 popen 标准输出时出现问题



我需要将输出命令放到一个变量上。 我正在尝试这个:

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是一个文件对象。可以使用 file 对象的read方法来获取输出的内容:

print(output.stdout.read())

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

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

相关内容

  • 没有找到相关文章

最新更新