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

相关文章

Python读写文件模式和文件对象方法实例详解

Python读写文件模式和文件对象方法实例详解

本文实例讲述了Python读写文件模式和文件对象方法。分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如...

python通过移动端访问查看电脑界面

python通过移动端访问查看电脑界面

这篇文章主要介绍了python通过移动端访问查看电脑界面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 看上心意的小姐姐,想看她平时都...

python网络编程学习笔记(九):数据库客户端 DB-API

一、DB-API概述      python支持很多不同的数据库。由于不同的卖家服务器导致和数据库通信的网络协议各有不同。在python...

Python多进程并发与多线程并发编程实例总结

本文实例总结了Python多进程并发与多线程并发。分享给大家供大家参考,具体如下: 这里对python支持的几种并发方式进行简单的总结。 Python支持的并发分为多线程并发与多进程并发...

Python 元组操作总结

Python的元组和列表类似,不同之处在于元组中的元素不能修改(因此元组又称为只读列表),且元组使用小括号而列表使用中括号,如下: tup1=('physics','chemistr...