Командная строка запуска Python (время) - PullRequest
1 голос
/ 18 апреля 2010

Я хочу запустить unix-команду 'time' из скрипта Python, чтобы рассчитать время выполнения приложения, не являющегося Python. Я бы использовал метод os.system. Есть ли способ сохранить вывод этого в Python? Моя цель состоит в том, чтобы запустить приложение несколько раз, сохранить время их выполнения, а затем сделать некоторую статистику по ним.

Спасибо

Ответы [ 2 ]

3 голосов
/ 18 апреля 2010

Вы действительно должны использовать модуль подпроцесса для запуска внешних команд. Метод Popen () позволяет указать файловый объект, куда должен идти stdout (заметьте, вы можете использовать любой объект Python, который ведет себя как файл, вам не обязательно записывать его в файл)

Например:

import subprocess
log_file = open('/path/to/file', 'a')

return_code = subprocess.Popen(['/usr/bin/foo', 'arg1', 'arg2'], stdout=log_file).wait()
0 голосов
/ 03 мая 2011

Вы можете использовать модуль timeit , чтобы отрывать временные коды (скажем, функцию, которая запускает внешние команды с использованием модуля подпроцесса, как описано в ответе выше), и сохранять данные в файл csv. Вы можете делать статистику по данным CSV, используя модуль статистики или внешне, используя Excel / LogParser / R и т. Д.

Другой подход заключается в использовании профилировщика, который выполняет профилирование, а также возвращает статистику, которую вы можете либо распечатать с помощью метода print_stats (), либо сохранить в файл путем итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...