Проблема с печатью popen stdout из подпроцесса - PullRequest
0 голосов
/ 20 сентября 2018

Мне нужно положить выходную команду в переменную.Я пытался это:

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 голосов
/ 20 сентября 2018

output.stdout является файловым объектом.Вы можете использовать метод read объекта файла для получения содержимого вывода:

print(output.stdout.read())

или вместо него можно использовать метод Popen.communicate:

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