2013-04-30 4 views
1

Я использую этот код для вызова другой программы и получения данных, полученных из этой программы. Использование этого занимает около минуты, чтобы закончить. Есть ли более эффективная функция, которую я мог бы использовать?subprocess.check_output более быстрый способ

+1

Сколько времени требуется, чтобы запустить ту же команду из командной оболочки (или командной строки)? Вы уверены, что subprocess.check_output() - это горлышко бутылки? –

+1

Используется 'shell = True' действительно необходимо? Это приносит много проблем, особенно если у вас есть пробелы в имени файла. Вы пробовали 'subprocess.check_output (['perl', 'ruleFinder.pl', datasetfile, myrulepath])' – glglgl

+0

Я согласен с 'shell = True'. Передача списка аргументов намного чище. –

ответ

4

subprocess.check_output просто запускает другой процесс и ждет его завершения. Это займет минутку, но время не потрачено на выполнение subprocess.check_output. Время тратится на выполнение другого процесса. Единственный способ ускорить процесс - ускорить этот другой процесс.