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

时间:2011-03-22 17:35:27

标签: python linux open-with

使用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 个答案:

答案 0 :(得分:4)

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

可以找到更多信息here

编辑: 自撰写此答案以来,GnomeVFS已被标记为已弃用。 GIO现在使用app_info_get_allapp_info_get_for_type等方法提供此功能。

答案 1 :(得分:2)

GNOME将其应用程序列表存储在这两个文件中:

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

(link to source)