Popen中start启动程序

我用以下命令:subprocess.Popen(['start', 'hello.txt'], shell=True)
打开txt文档后,文档马上关闭,使用subprocess.Popen(['C:\Windows\notepad.exe', 'hello.txt'], shell=True)打开文档就不会出现马上关闭的情况,哪位高手能指导一下。

引用 皆我百晓生 小程序回复内容作答:

在Windows上使用subprocess.Popen执行start命令来打开文档时,如果没有指定程序关联文件类型,文件将会被默认的关联程序打开,并且由于没有进程继续运行,文档可能会被关闭。这是start命令的默认行为。

另一种使用subprocess.Popen的方式是直接指定要启动的程序路径和文件路径。在你的例子中,使用notepad.exe作为程序来打开文档,这种方式会创建一个新的进程来运行notepad.exe,因此文档不会立即关闭。

你可以尝试以下代码来打开文档并保持打开状态:

import subprocess

subprocess.Popen(['notepad.exe', 'hello.txt'], shell=True)

注意,notepad.exe的路径需要使用两个反斜杠进行转义,或者使用原始字符串以避免转义字符。

如果你想使用其他已关联的默认程序来打开文档,你可以使用os.startfile方法,如下所示:

import os

os.startfile('hello.txt')

这会使用与文件类型关联的默认程序来打开文档,并且不会立即关闭。