Python:获取与文件关联的应用程序列表(Linux)

4 投票
2 回答
661 浏览
提问于 2025-04-16 14:12

我正在用Python开发一个应用程序,需要给用户提供一个“打开方式”的菜单。目前我在解析 /usr/share/applications/mimeinfo.cashe~/.local/share/applications/mimeapps.list,但结果很差。Nautilus的“打开方式”菜单里有更多的选项。

你知道有没有更好的方法来获取与文件关联的应用程序列表吗?

编辑:

其实有个更简单的方法,可以使用 gnomevfs 模块。

mime_type = gnomevfs.get_mime_type(filename)
application_list = gnomevfs.mime_get_all_applications(mime_type)

通过这个方法返回的列表里,你可以看到应用程序的名称、图标名称、配置文件以及其他很多信息。

2 个回答

2

GNOME把它的应用程序列表保存在这两个文件里:

/etc/gnome/defaults.list
~/.local/share/applications/mimeapps.list

(链接到来源)

4

我找到了一种更优雅的解决方案。在 gnomevfs 模块中,有一个叫 mime_get_all_applications 的函数,它可以返回一个正确的关联应用程序列表。

更多信息可以在 这里 找到。

编辑:自从这个回答写成以来,GnomeVFS 已经被标记为不再推荐使用。现在,GIO 提供了类似 app_info_get_allapp_info_get_for_type 的方法来实现这个功能。

撰写回答