我用以下命令: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')
这会使用与文件类型关联的默认程序来打开文档,并且不会立即关闭。