之前,subprocess.run()仍然只打开边缘并执行下一个命令,而没有关闭边缘。目前,subprocess.run() 将等待边缘关闭,然后再执行下一条语句。如何让 run() 像以前一样工作?我使用的是python 3.11,没有做任何新的设置。谢谢
我的示例代码:
edge = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" subprocess.run(edge.split()) print('next command')
run() 将等待关闭边缘,当我关闭边缘时, print 将执行,但以前的 run() 不需要关闭边缘。
此外,我在 Firefox、Chrome 甚至使用 os.symtem 时也遇到此问题
subprocess.run()
始终等待子进程完成。 Edge 中可能发生了某些变化,或者您以不同的方式运行它。
(模糊地,我记得运行一个新的浏览器实例会阻塞,而如果它已经在运行,子进程只会启动一个新的浏览器窗口并退出。但我不使用 Windows,也从未使用过 Edge。)
如果您想要后台进程,则需要
subprocess.Popen()
,并承担所有额外的日常职责来管理(特别是至少等待和收获)您创建的子进程。