Проблема с печатью popen 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.
1 ответ
Решение
output.stdout
это файловый объект Вы можете использовать read
Метод объекта файла для получения содержимого вывода:
print(output.stdout.read())
или вы можете использовать Popen.communicate
метод вместо:
stdout, stderr = output.communicate()
print(stdout)