Мой код не будет выполняться до тех пор, пока программа, открытая с помощью подпроцесса, не будет закрыта

#python #subprocess

Вопрос:

Я пытаюсь использовать модуль подпроцесса, чтобы открыть блокнот, а затем распечатать, что программа была открыта. Мой код:

 import os import subprocess if os.path.exists(r'C:WindowsSystem32notepad.exe'):  subprocess.run(r'C:WindowsSystem32notepad.exe')  print('Program executed')  

Блокнот открывается, но проблема в том, что команда печати не работает, пока я не закрою Блокнот. есть ли в любом случае способ преодолеть это?

Комментарии:

1. subprocess.run() блокируется до тех пор, пока команда не завершится. Используйте потоки, многопроцессорную обработку или любой из асинхронных параметров (или отключите команду, которую вы выполняете).

Ответ №1:

Использование Popen вместо run помогает. Затем скрипт не ждет, пока программа закроется:

 subprocess.Popen(r'C:WindowsSystem32notepad.exe')