通过python获取Ubuntu OS中特定文件类型的默认图标

时间:2014-02-21 20:06:22

标签: python ubuntu gtk

在我的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:我读到了这个问题,它只对当前存在的文件起作用。

How Can I Get an Icon or thumbnail for a Specific file

2 个答案:

答案 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())