У меня есть программа Python, из которой я создаю подпрограмму для обработки некоторых файлов, не задерживая основную программу. В настоящее время я использую bash для подпрограммы, запущенной с командой и двумя такими параметрами:
result = os.system('sub-program.sh file.txt file.txt &')
Это прекрасно работает, но я (в конце концов!) понял, что могу использовать Python для подпрограммы, что было бы гораздо предпочтительнее, поэтому я преобразовал его. Самый простой способ его нереста может быть:
result = os.system('python3 sub-program.py file.txt file.txt &')
Некоторые исследования показали несколько более сложных альтернатив, но у меня сложилось впечатление, что последним и наиболее одобренным методом является этот:
subprocess.Popen(["python3", "-u", "sub-program.py"])
Правильно ли я думаю, что это наиболее подходящий способ сделать это? Кто-нибудь порекомендует другой метод и почему? Просто было бы хорошо, так как я немного новичок в Python.
Если это рекомендуемый метод, я, вероятно, смогу понять, что делает «-u» и как добавить параметры для себя.
Дополнительные опции:
- Отправить сообщение обратно из подпрограммы в основную программу.
- Сделайте так, чтобы подпрограмма закрывалась, когда основная программа завершает работу.