崔晋铭73 2023-09-07 00:38 采纳率: 33.3%
浏览 3

Popen中start启动程序

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

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-14 00:16
    关注

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

    在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')
    

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

    评论

报告相同问题?

问题事件

  • 创建了问题 9月7日

悬赏问题

  • ¥20 ARKts悬浮窗和快捷方式问题
  • ¥15 comparecluster没有办法kegg
  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES