вызов процесса из python

#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