MyTetra Share
Делитесь знаниями!
Python: запуск внешних программ и команд
Время создания: 29.12.2012 10:35
Раздел: Компьютер - Программирование - Язык Python
Запись: xintrea/mytetra_syncro/master/base/1356762920vet147fpaq/text.html на raw.github.com

Для вызова внешних программ/команд системы рекомендуется ипользовать библиотеку subprocess.

Функция call()

Выполнение команд с получением кода возврата.

# Выполнить простую системную команду,по аналогии os.system()

ret = subprocess.call("ls -l", shell=True)

# Выполнить простую команду, подавив вывод

ret = subprocess.call("rm –f *.java", shell=True, stdout=open("/dev/null"))

Вопрос в получении вывода выполняемой команды. Встречалась информация, что через call получить вывод невозможно, он виден только в выводе выполнения программы.

Однако нужно попробовать указать в параметрах:

stdout=subprocess.PIPE

или

stdout=subprocess.STDOUT

Возможно, что затем можно получить накопленное содержимое subprocess.STDOUT в переменную. Проверить.

Подробности

subprocess.PIPE - специальная константа, которая используется для аргументов stdin, stdout или stderr, обозначает объект Popen. Наличие этой константы указывает, что труба стандартного потока будет открыта.

(Оригинал на английском: Special value that can be used as the stdin, stdout or stderr argument to Popen and indicates that a pipe to the standard stream should be opened.)

subprocess.STDOUT - специальная константа, которая используется для аргументов stderr, обозначает объект Popen. Наличие этой константы указывает, что поток ошибок будет иметь тот же системный идентификатор, что и стандартный поток вывода.

(Оригинал на английском: Special value that can be used as the stderr argument to Popen and indicates that standard error should go into the same handle as standard output).

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования