从子进程打印 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)
我需要把输出命令放到一个变量中。 我在尝试这个:
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)