如何防止 subprocess.run() (python 3.11) 等待关闭 Edge 浏览器才能执行下一个命令

问题描述 投票:0回答:1

之前,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 python-webbrowser python-3.11
1个回答
0
投票

subprocess.run()
始终等待子进程完成。 Edge 中可能发生了某些变化,或者您以不同的方式运行它。

(模糊地,我记得运行一个新的浏览器实例会阻塞,而如果它已经在运行,子进程只会启动一个新的浏览器窗口并退出。但我不使用 Windows,也从未使用过 Edge。)

如果您想要后台进程,则需要

subprocess.Popen()
,并承担所有额外的日常职责来管理(特别是至少等待和收获)您创建的子进程。

© www.soinside.com 2019 - 2024. All rights reserved.