в python получить вывод системной команды в виде строки
В python я могу запустить некоторую системную команду с помощью os или subprocess. Проблема в том, что я не могу получить вывод в виде строки. Например:
>>> tmp = os.system("ls") file1 file2 >>> tmp 0
У меня есть более старая версия подпроцесса, у которой нет функции check_out, и я бы предпочел решение, которое не требует обновления этого модуля, поскольку мой код будет работать на сервере. У меня нет полных прав администратора.
Эта проблема кажется тривиальной, но я не мог найти тривиального решения
- Вызов скрипта python из командной строки дает синтаксическую ошибку, когда класс ничего не наследует, почему?
- sys.stdin не закрывается на ctrl-d
- Ошибка запроса Python / MySQL: `Неизвестный столбец`
- Сохранять историю команд между (i) сеансами python
- Как я могу отлаживать POST-запросы с помощью BaseHTTPServer / SimpleHTTPServer python?
Использовать os.popen()
:
tmp = os.popen("ls").read()
Новым способом (> python 2.6) для этого является использование subprocess
:
proc = subprocess.Popen('ls', stdout=subprocess.PIPE) tmp = proc.stdout.read()
- Интерфейс для изменения переменных среды Windows из Python
- Как отобразить время типа «x дней назад», используя Humanize в шаблоне Django?
- Как не процитировать аргумент в подпроцессе?
- Полная командная строка, когда она была напечатана
- Перенаправить вывод интерактивных команд python / ipython в файлы или переменные
- Ошибка при использовании функции offlineimap: getfolder () запрашивает несуществующую папку
- Использование одной и той же опции более одного раза из командной строки в python
- Как запустить ipython из оболочки, запустив «python …»?
- Как избежать печати ^ C после обработки KeyboardInterrupt
- Изменить интерактивную подсказку Python «>>>»
- Как преобразовать аргументы командной строки в python в словарь?