В настоящее время я пытаюсь понять, как создать код, который будет принимать входное расширение файла, например '.png', и вернуть связанный значок с этим файловым типом в системе.Python-Сохранение/Доступ к значкам расширения файла и их использование в программе Tkinter
Я использую python 2.7.6 и использую Windows 8. Я искал код для этого в течение нескольких часов для вещей, близких к нему, сохраняя изображения из .exe-файлов, но не обнаруживая расширение файла в реестре и сохраняя его.
Я нашел код, который работает и позволяет мне сохранить файл как BMP, который в основном работает с использованием значка wxpython для растровых изображений и сохраняет изображение. Тем не менее, я бы просто не использовал код wxpython, так как я использую Tkinter для кодирования самого интерфейса.
Вот код, который в настоящее время работает (немного измененная) от http://ginstrom.com/scribbles/2007/08/31/file-list-with-icons-on-wxpython-windows/
import wx
from win32com.shell import shell, shellcon
from win32con import FILE_ATTRIBUTE_NORMAL
def extension_to_bitmap(extension):
"""dot is mandatory in extension"""
flags = shellcon.SHGFI_SMALLICON | \
shellcon.SHGFI_ICON | \
shellcon.SHGFI_USEFILEATTRIBUTES
retval, info = shell.SHGetFileInfo(extension,
FILE_ATTRIBUTE_NORMAL,
flags)
# non-zero on success
assert retval
hicon, iicon, attr, display_name, type_name = info
# Get the bitmap
icon = wx.EmptyIcon()
icon.SetHandle(hicon)
return wx.BitmapFromIcon(icon)
root = wx.App()
bitmapFile = extension_to_bitmap(".png")
bitmapFile.SaveFile('test.bmp', wx.BITMAP_TYPE_BMP)
Любая помощь очень ценится!