我有一个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”的作用以及如何添加参数。
可选项:
- 从子程序向主程序发送消息。 - 当主程序退出时使子程序退出。