首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Windows和Mac OS中使用Python中的默认OS应用程序打开文档

在Windows和Mac OS中使用Python中的默认OS应用程序打开文档
EN

Stack Overflow用户
提问于 2009-01-12 14:23:51
回答 12查看 110.9K关注 0票数 149

我需要能够在Windows和Mac OS中使用默认应用程序打开文档。基本上,我想做的事情与在资源管理器或Finder中双击文档图标时发生的事情相同。在Python中做这件事的最好方法是什么?

EN

回答 12

Stack Overflow用户

发布于 2009-01-12 15:00:22

使用Python 2.4+上提供的subprocess模块,而不是os.system(),这样就不必处理外壳转义。

代码语言:javascript
复制
import subprocess, os, platform
if platform.system() == 'Darwin':       # macOS
    subprocess.call(('open', filepath))
elif platform.system() == 'Windows':    # Windows
    os.startfile(filepath)
else:                                   # linux variants
    subprocess.call(('xdg-open', filepath))

双括号是因为subprocess.call()想要一个序列作为它的第一个参数,所以我们在这里使用了一个元组。在带有Gnome的Linux系统上,也有一个gnome-open命令可以做同样的事情,但是xdg-open是自由桌面基础标准,可以在Linux桌面环境中工作。

票数 185
EN

Stack Overflow用户

发布于 2009-01-12 12:33:39

我更喜欢:

代码语言:javascript
复制
os.startfile(path, 'open')

请注意,此模块支持文件夹和文件中包含空格的文件名,例如

代码语言:javascript
复制
A:\abc\folder with spaces\file with-spaces.txt

(python docs)不必添加'open‘(这是默认设置)。文档特别提到,这就像在Windows资源管理器中双击文件的图标一样。

此解决方案仅适用于windows。

票数 52
EN

Stack Overflow用户

发布于 2009-01-12 14:47:10

只是为了完整性(这不在问题中),xdg-open将在Linux上做同样的事情。

票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/434597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档