Для вызова внешних программ/команд системы рекомендуется ипользовать библиотеку 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).