You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows系统通过Python调用原生应用打开文件(非open()方法)

在Windows上通过Python调用原生应用打开文件(使用subprocess.run)

完全可以实现,Windows系统里可以借助内置的start命令,结合subprocess.run来调用默认关联的原生应用打开文件,直接查看内容。

基础实现代码

import subprocess

def open_file_with_default_app(file_path):
    # 调用start命令打开文件,空字符串是为了避免start将文件名当作窗口标题
    subprocess.run(['start', '', file_path], shell=True, check=True)

# 示例调用
open_file_with_default_app("report.pdf")
open_file_with_default_app("screenshot.png")

关键细节说明

  • start是Windows CMD的内置命令,会自动匹配系统中对应文件类型的默认应用,比如用Edge打开PDF、用照片查看器打开图片
  • 第二个参数传空字符串是必要的:如果start的第一个参数带引号,会被当作新窗口的标题,留空才能让它正确识别后面的文件路径
  • shell=True必须加上,因为start是CMD内置命令,需要通过shell环境执行
  • check=True会在命令执行失败时(比如文件不存在)抛出CalledProcessError,方便排查问题

进阶用法

  • 等待应用关闭再继续脚本:如果需要等用户看完文件、关闭应用后再执行后续代码,加上/wait参数
    subprocess.run(['start', '/wait', '', file_path], shell=True, check=True)
    
  • 指定特定应用打开:如果不想用默认应用,直接调用目标程序路径即可,这种情况不需要shell=True
    # 用记事本打开文本文件
    subprocess.run(['notepad.exe', "notes.txt"], check=True)
    # 用画图打开图片
    subprocess.run(['mspaint.exe', "sketch.bmp"], check=True)
    

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 20:20:34