Проблема с печатью popen stdout из подпроцесса

1

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

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.

Теги:
popen
python-2.6

1 ответ

0
Лучший ответ

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

print(output.stdout.read())

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

stdout, stderr = output.communicate()
print(stdout)
  • 1
    Спасибо! stdout.read () возвращает строку!
  • 0
    Рад помочь. Можете ли вы пометить этот ответ как принятый, если сочтете его правильным?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню