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

yipeiwu_com7年前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程序设计有所帮助。

相关文章

5款非常棒的Python工具

5款非常棒的Python工具

工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来了很多便利,推荐给追求美好...

解决安装python库时windows error5 报错的问题

python安装库时,有时候会报错windows error 5,可以尝试关闭所有使用python的编辑器、文件等,然后重新pip安装,如果还是不行,可以将报错最下层文件删除即可(如果不...

TensorFlow实现打印每一层的输出

在test.py中可以通过如下代码直接生成带weight的pb文件,也可以通过tf官方的freeze_graph.py将ckpt转为pb文件。 constant_graph = gr...

Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例

本文实例讲述了Python找出序列中出现次数最多的元素。分享给大家供大家参考,具体如下: 问题:找出一个元素序列中出现次数最多的元素是什么 解决方案:collections模块中的Cou...

简单了解python中对象的取反运算符

简单了解python中对象的取反运算符

取反运算符的原理: 1.对3取反:(取4位二进制) ①化为二进制: 3→0011 ②对二进制结果取反: 0011→1100 ③对结果先取反再加1: 1100→(~1100+...