在Python/wxPython中访问文件元数据
我想写一个Python/wxPython的应用程序,使用wx.FileDropTarget这个功能。这部分其实挺简单的。我还想在文件拖到应用窗口上时显示文件的图标,然后在应用窗口里显示一个带有文件图标(还有其他一些信息,比如文件大小)的代理。
我想在Windows 7上实现这个功能。不过,我也希望能在OS X和Linux上实现。
我在网上搜索过,也查阅了Python v2.7.1的文档,但都没有找到有用的信息。我对Windows的操作还不太熟悉,所以如果有办法获取与文件相关的BMP或ICO文件,我也愿意尝试这个方法……
任何示例代码都会非常感谢。
2 个回答
1
这个例子可以帮助你开始在Windows中找到文件图标:
from _winreg import *
extension = '.html'
reg = OpenKey(HKEY_CLASSES_ROOT, extension)
(value, vtype) = QueryValueEx(reg, None)
print "file type is:", value
reg = OpenKey(HKEY_CLASSES_ROOT, value + '\DefaultIcon')
(value, vtype) = QueryValueEx(reg, None)
print value, vtype
%ProgramFiles%\Internet Explorer\iexplore.exe,-17 2
...至少在我的系统上是这样的。
1
我觉得实现这个功能的方法不止一种。在Windows系统上,文件类型的默认图标是存储在系统注册表里的(除了可执行文件的图标是在exe文件的资源里)。而在Linux系统上,这个就要看你用的桌面环境了,每个桌面环境都有自己的标准。所以我认为没有一种“通用”的方法可以做到这一点。