Мне нужно передать команду вывода переменной. Я пытался это сделать:
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)