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

esn*_*adr 1 python gtk ubuntu

在我的ubuntu PC和python脚本中,我需要获取特定文件类型的图标的默认路径.

如:

def get_icon_path(extenstion):
    ...
    ...
    return icon_path
Run Code Online (Sandbox Code Playgroud)

get_icon_path( "PY")

/usr/share/icons/Humanity/mimes/48/text-x-python.svg

注意:我读过这个问题,它只对当前存在的文件起作用.

如何获取特定文件的图标或缩略图

Vas*_*nov 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()
Run Code Online (Sandbox Code Playgroud)

  • 我已经为GTK3发布了另一个答案. (2认同)