#python
#python
Вопрос:
Я вызываю perl-скрипт из python. Скрипт perl извлекает большой набор данных пакетами с веб-сервера, что требует времени. Этот perl-скрипт выполняется в цикле. Он выполняет работу довольно хорошо, но во время последнего запуска цикла, пока скрипт все еще загружается, он выполняет остальную часть кода python.
Я хочу знать, каков наилучший способ вызвать другую программу на python, и при запуске perl-скрипта процесс python должен дождаться завершения выполнения perl-скрипта, пока остальной код python обрабатывает загруженные данные. Я читал о потоковой обработке, но не уверен, как это реализовать в моем случае.
код является
for expr in names_dict[keys]:
subprocess.call(["./test.pl", expr, absFilePath])
Будем признательны за любую помощь.
Большое спасибо,
Комментарии:
1.
subprocess.call
ожидает завершения подпроцесса. Ваша проблема заключается в другом.2. Йохен Ритцель прав — возможно ли, что perl-скрипт завершается до того, как данные будут полностью загружены?
Ответ №1:
Используйте подпроцесс.Popen(). Ознакомьтесь с этим сообщением в блоге:
http://trifoliummedium.blogspot.com/2010/12/running-command-line-with-python-and.html