在我的ubuntu PC和python脚本中,我需要获取特定文件类型图标的默认路径。
as:
def get_icon_path(extenstion):
...
...
return icon_path
get_icon_path( “PY”)
/usr/share/icons/Humanity/mimes/48/text-x-python.svg
N.B:我读到了这个问题,它只对当前存在的文件起作用。
答案 0 :(得分:6)
GNU / Linux桌面环境不会将图标分配给文件名后缀(扩展名)。相反,它们将图标分配给Internet媒体类型(MIME类型),文件的类型可能由其文件名后缀确定,也可能不由其确定(也可能涉及内容嗅探)。您可以使用标准库中的mimetypes
模块从后缀中猜测媒体类型。然后是gio.content_type_get_icon
,从那时起,就像你链接的问题一样。
import mimetypes
import gio
import gtk
def get_icon_path(extension, size=32):
type_, encoding = mimetypes.guess_type('x.' + extension)
if type_:
icon = gio.content_type_get_icon(type_)
theme = gtk.icon_theme_get_default()
info = theme.choose_icon(icon.get_names(), size, 0)
if info:
return info.get_filename()
答案 1 :(得分:2)
对于GTK3,请使用
from gi.repository import Gtk, Gio
def get_icon_path(mimetype, size=32):
icon = Gio.content_type_get_icon(mimetype)
theme = Gtk.IconTheme.get_default()
info = theme.choose_icon(icon.get_names(), size, 0)
if info:
print(info.get_filename())