2016-08-28 5 views
7

Я новичок в модуле subprocess, и ducumentation оставляет мне интересно, в чем разница между subprocess.popen и subprocess.run. Есть ли разница в том, что делает команда? Является ли это только новым? Что лучше использовать?В чем разница между subprocess.popen и subprocess.run

ответ

9

was added in Python 3.5 как упрощение по сравнению с subprocess.Popen, когда вы просто хотите выполнить команду и подождать, пока она не закончится, но вы тем временем не хотите делать что-либо еще. В других случаях вам все равно необходимо использовать subprocess.Popen.

Основное отличие заключается в том, что subprocess.run выполняет команду и ждет для того, чтобы закончить, в то время как с subprocess.Popen вы можете продолжать делать свои вещи в то время как заканчивается процесс, а затем просто повторно позвонить subprocess.communicate себя передать и получить данные к процессу ,

Обратите внимание, что то, что subprocess.run на самом деле делает это вызов для вас Popen и communicate, так что вам не нужно, чтобы сделать петлю для передачи/приема данных и не ждать завершения процесса.

Проверить this site за информацию о которых параметры subprocess.run передаются в Popen и для communicate.

Смежные вопросы