subprocess.run выполняется в фоновом режиме, как Popen - PullRequest
0 голосов
/ 28 ноября 2018

Документы subprocess говорят

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

subprocess.run выполняется на переднем плане, ожидая завершения подпроцесса.subprocess.Popen выполняется в фоновом режиме, немедленно возвращая объект Popen.Могу ли я заставить subprocess.run немедленно вернуть объект Popen, работающий в фоновом режиме?

In [3]: subprocess.Popen(['sleep', '10'])                                       
# Immediately
Out[3]: <subprocess.Popen object at 0x7f70b38609b0>

In [4]: subprocess.run(['sleep', '10'])                                         
# 10 seconds later
Out[4]: CompletedProcess(args=['sleep', '10'], returncode=0)

1 Ответ

0 голосов
/ 28 ноября 2018

Нет.Документы для run специально указывают, что он ждет:

Запустите команду, описанную аргументами.Дождитесь завершения команды, затем верните экземпляр CompletedProcess.

Он был представлен в Python 3.5 как упрощение Popen / общаться для случаев использования, когда ожидание завершения процесса приемлемо.

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