Подтвердить что ты не робот

В python, получить вывод системной команды в виде строки

В python я могу запустить некоторую системную команду с помощью os или subprocess. Проблема в том, что я не могу получить вывод в виде строки. Например:

>>> tmp = os.system("ls")
file1 file2
>>> tmp
0

У меня есть более старая версия подпроцесса, у которой нет функции check_out, и я бы предпочел решение, которое не требует обновления этого модуля, поскольку мой код будет работать на сервере. У меня нет полных прав администратора,

Эта проблема кажется тривиальной, но я не мог найти тривиальное решение

4b9b3361

Ответ 1

Используйте os.popen():

tmp = os.popen("ls").read()

Новым способом ( > python 2.6) для этого является использование subprocess:

proc = subprocess.Popen('ls', stdout=subprocess.PIPE)
tmp = proc.stdout.read()