python实现计算资源图标crc值的方法

yipeiwu_com6年前Python基础

本文实例讲述了python实现计算资源图标crc值的方法,分享给大家供大家参考。具体方法如下:

实现该功能的关键在于解析资源信息,找到icon的数据,然后计算这些数据的crc

具体实现代码如下:

  def _get_iconcrc(self, file_path): 
    """ 
    Generates the crc32 hash of the icon of the file. 
    @return: str, the str value of the file's icon 
    """ 
    iconData = "" 
 
    mype = pefile.PE(file_path) 
    if hasattr(mype, "DIRECTORY_ENTRY_RESOURCE"): 
      resIcons = filter(lambda x: x.id==pefile.RESOURCE_TYPE['RT_ICON'], mype.DIRECTORY_ENTRY_RESOURCE.entries) 
      if len(resIcons)>0: 
        resIcons = resIcons[0] 
        if hasattr(resIcons, "directory"): 
          for resId in resIcons.directory.entries: 
            if hasattr(resId, 'directory'): 
              for resLang in resId.directory.entries: 
                iconData += mype.get_data(resLang.data.struct.OffsetToData, resLang.data.struct.Size) 
     
    if not iconData: 
      print "not iconData" 
      return None 
    else: 
      return self._crc32(iconData) 

希望本文所述对大家的Python程序设计有所帮助。

相关文章

Flask框架单例模式实现方法详解

本文实例讲述了Flask框架单例模式实现方法。分享给大家供大家参考,具体如下: 单例模式: 程序运行时只能生成一个实例,避免对同一资源产生冲突的访问请求。 Django &nb...

Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作

本文实例讲述了Python在字符串的开头或结尾处进行文本匹配操作。分享给大家供大家参考,具体如下: 问题:在字符串的开头或结尾处按照指定的文本模式做检查,例如检查文件的扩展名、URL协议...

Python修改文件往指定行插入内容的实例

需求:批量修改py文件中的类属性,为类增加一个core = True新的属性 原py文件如下 a.py class A(): description = "abc" 现在有一个...

Python3中_(下划线)和__(双下划线)的用途和区别

在看一些Python开源代码时,经常会看到以下划线或者双下划线开头的方法或者属性,到底它们有什么作用,又有什么样的区别呢?今天我们来总结一下(注:下文中的代码在Python3下测试通过)...

基于MTCNN/TensorFlow实现人脸检测

基于MTCNN/TensorFlow实现人脸检测

人脸检测方法有许多,比如opencv自带的人脸Haar特征分类器和dlib人脸检测方法等。对于opencv的人脸检测方法,有点是简单,快速;存在的问题是人脸检测效果不好。正面/垂直/光线...