При использовании os.system
для открытия файла, например: os.system(r'C:/foo.txt')
, текущий процесс Python, конечно, ждет, пока системный вызов не вернется. (т.е. текстовый редактор закрывается).
Нужно ли использовать поток, чтобы сделать это асинхронным?
Представьте себе следующую ситуацию:
Я пишу Файловый менеджер для Windows, используя Python. Пользователь нажимает на файл. Теперь с помощью os.system(the_path_to_the_file_clicked)
откроется файл с программой по умолчанию, установленной в реестре.
Использование потока, чтобы сделать системный вызов асинхронным, работало бы довольно хорошо, но что, когда пользователь закрывает файловый менеджер? Процесс Python будет работать до тех пор, пока не завершится поток, но разве это не излишне? А с другой стороны, завершение Python-процесса также приведет к завершению потока, программа закроется.
Есть ли способ использовать системный вызов для открытия нового процесса, независимого от процесса Python?