Python:ファイルに関連付けられたアプリケーションのリストを取得(Linux)
質問
Pythonでアプリケーションを作成しています。ユーザーに「オープン」メニューを提供する必要があります。現在、私は解析しています /usr/share/applications/mimeinfo.cashe
と ~/.local/share/applications/mimeapps.list
しかし、非常に悪い結果があります。 Nautilusには、「Open with」メニューのエントリが増えています。
ファイルに関連付けられたアプリケーションのリストを取得するためのより良い方法を知っていますか?
編集:
より簡単な方法があります gnomevfs
モジュール。
mime_type = gnomevfs.get_mime_type(filename)
application_list = gnomevfs.mime_get_all_applications(mime_type)
返されたリストでは、アプリケーション名、アイコン名、構成ファイル、その他多くのものを取得します。
解決
もう少しエレガントなソリューションを見つけました。の gnomevfs
モジュールという名前の関数があります mime_get_all_applications
関連するアプリケーションの適切なリストを返します。
より多くの情報を見つけることができます ここ.
編集:この回答が書かれた時から、gnomevfsは非推奨としてマークされました。 GIOは、この機能を今すぐ提供しています app_info_get_all
と app_info_get_for_type
.
他のヒント
Gnomeは、これらの2つのファイルにアプリケーションリストを保存します。
/etc/gnome/defaults.list
~/.local/share/applications/mimeapps.list
所属していません StackOverflow