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

如何在Python中通过默认应用打开程序?解决subprocess.Popen参数疑问

用Python调用默认应用打开文件(模拟双击效果)

你不用纠结subprocess.Popen里的program参数填什么——不同操作系统有专门的默认打开命令,直接用这些命令就能实现双击一样的效果,完全不需要指定具体的应用程序路径:

分系统实现方式

Windows系统

用cmd的start命令,注意要加空引号占位(避免文件名带空格时出错),通过cmd /c调用:

import subprocess

def open_with_default(file_path):
    subprocess.Popen(f'cmd /c start "" "{file_path}"', shell=True)

# 示例:打开本地txt文件
open_with_default("C:/test/example.txt")

macOS系统

直接用系统自带的open命令:

import subprocess

def open_with_default(file_path):
    subprocess.Popen(["open", file_path])

# 示例:打开图片文件
open_with_default("/Users/xxx/Pictures/photo.png")

Linux系统

用xdg-open命令(主流桌面环境都支持):

import subprocess

def open_with_default(file_path):
    subprocess.Popen(["xdg-open", file_path])

# 示例:打开PDF文档
open_with_default("/home/xxx/Documents/manual.pdf")

跨平台兼容写法

如果要让代码在多个系统通用,用sys.platform判断当前系统即可:

import subprocess
import sys

def open_with_default(file_path):
    if sys.platform.startswith('win'):
        subprocess.Popen(f'cmd /c start "" "{file_path}"', shell=True)
    elif sys.platform.startswith('darwin'):
        subprocess.Popen(["open", file_path])
    elif sys.platform.startswith('linux'):
        subprocess.Popen(["xdg-open", file_path])
    else:
        raise OSError(f"不支持的操作系统: {sys.platform}")

# 调用示例
open_with_default("你的文件路径")

这种写法完全模拟双击操作,系统会自动用关联的默认应用打开目标文件,不用你手动找应用程序的路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:46:09