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

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • python根据出生年份简单计算生肖的方法

    本文实例讲述了python根据出生年份简单计算生肖的方法.分享给大家供大家参考.具体分析如下: 这里使用python根据出生年份计算生肖,看了代码会发现原来这么简单 #计算生肖 def ChineseZodiac(year): return u'猴鸡狗猪鼠牛虎兔龙蛇马羊'[year%12] ChineseZodiac(1990) 希望本文所述对大家的Python程序设计有所帮助.

  • python根据经纬度计算距离示例

    复制代码 代码如下: /** * 计算两点之间距离 * @param _lat1 - start纬度 * @param _lon1 - start经度 * @param _lat2 - end纬度 * @param _lon2 - end经度 * @return km(四舍五入) */public static double getDistance(double _lat1,double _lon1, double _lat2,double _lon2){ double lat1 = (Math

  • python益智游戏计算汉诺塔问题示例

    汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘. 复制代码 代码如下: times = 0def test(num,a,b,c):    globaltimes    ifnum==1:       print (a,b)       times+=1 else

  • python概率计算器实例分析

    本文实例讲述了python概率计算器实现方法.分享给大家供大家参考.具体实现方法如下: from random import randrange #randrange form random module def calc_prob(strengths): """A function that receives an array of two numbers indicating the strength of each party and returns the winne

  • python使用PythonMagick将jpg图片转换成ico图片的方法

    本文实例讲述了python使用PythonMagick将jpg图片转换成ico图片的方法.分享给大家供大家参考.具体分析如下: 这里使用到了PythonMagick模块,关于PythonMagick模块和ImageMagick的详细信息请参考:http://www.imagemagick.org/. 下面这段代码可以讲jpg图片转换成ico图标格式. # -*- coding: utf-8 -*- import PythonMagick img = PythonMagick.Image("c:/

  • Python计算回文数的方法

    本文实例讲述了Python计算回文数的方法.分享给大家供大家参考.具体如下: 这里检查数字是不是回文数,用196算法生成一个数字的回文数 num = 905; def is_Palindrome(num): """ 判断一个数字是不是回文数,这里有些取巧了 :param num: :return: """ """ :param num: :return: """ temp = "

  • python实现根据月份和日期得到星座的方法

    本文实例讲述了python实现根据月份和日期得到星座的方法.分享给大家供大家参考.具体实现方法如下: #计算星座 def Zodiac(month, day): n = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座') d = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11

  • python根据出生日期返回年龄的方法

    本文实例讲述了python根据出生日期返回年龄的方法.分享给大家供大家参考.具体实现方法如下: def CalculateAge(self, Date): '''Calculates the age and days until next birthday from the given birth date''' try: Date = Date.split('.') BirthDate = datetime.date(int(Date[0]), int(Date[1]), int(Date[2

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

    本文实例讲述了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 "

  • SQL计算timestamp的差值的方法

    SQL计算timestamp的差值的方法 概述 有时候我们需要按照时间找出某些记录,比如说:算出离销售时间前1个小时的记录. 通常我们可以使用MYSQL的timestampdiff函数来做,但是这样没法使用到索引,如果数据量大的话,会造成慢查询. 用代码计算出时间后再传给SQL 我们可以利用JAVA代码,先把时间计算好,然后传给SQL语句,避免使用MYSQL的函数. public long xxxx(long sellTimeFrom){ Calendar calendar = Calendar

  • Python使用迭代器捕获Generator返回值的方法

    本文实例讲述了Python使用迭代器捕获Generator返回值的方法.分享给大家供大家参考,具体如下: 用for循环调用generator时,发现拿不到generator的return语句的返回值.如果想要拿到返回值,必须捕获StopIteration错误,返回值包含在StopIteration的value中: #!/usr/bin/env python # -*- coding: utf-8 -*- def fib(max): n, a, b = 0, 0, 1 while n < max:

  • python修改字典内key对应值的方法

    本文实例讲述了python修改字典内key对应值的方法.分享给大家供大家参考.具体实现方法如下: d2 = {'spam': 2, 'ham': 1, 'eggs': 3} # make a dictionary print d2 # order is scrambled d2['ham'] = ['grill', 'bake', 'fry'] # change entry print d2 运行结果如下: {'eggs': 3, 'ham': 1, 'spam': 2} {'eggs': 3,

  • Python 实现一行输入多个值的方法

    python如何实现一行输入多个值呢? 例如 读入两个数10 23到a b  中. 很简单   a,b = input().split()  即可. 当然,a,b中保存的是字符串. 如果要求a,b中保存的是整数的话可以这样写 a,b = map(int,input().split()) 以上这篇Python 实现一行输入多个值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: python实现同时给多个变量赋值的方法 python实现在ID

  • Java计算文本MD5加密值的方法示例

    本文实例讲述了Java计算文本MD5加密值的方法.分享给大家供大家参考,具体如下: java计算文本MD5值,用于加密 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class GetMd5 { public static void main(String[] args) { String a="123"; System.out.println(getM

  • Python实现计算文件MD5和SHA1的方法示例

    本文实例讲述了Python实现计算文件MD5和SHA1的方法.分享给大家供大家参考,具体如下: 不多说,直接源码: #file md5 import sys; import hashlib; import os.path; def GetFileMd5(strFile): file = None; bRet = False; strMd5 = ""; strSha1 = ""; try: file = open(strFile, "rb"); m

  • python 从list中随机取值的方法

    第一种方法(推荐) 适用于随机取一个值, 返回一个值 import random list1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州'] a = random.choice(list1) print(a) # 返回一个值 第二种方法 适用于随机取一组值, 返回一个list import random list1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州'] # 随机返回只有一个值的list a = rand

  • Python 遍历列表里面序号和值的方法(三种)

    三种遍历列表里面序号和值的方法: 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,特在情人节这一天写下了这篇博客,下面废话不多说,直接贴代码 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list = ['html', 'js', 'css', 'python'] # 方法1 print '遍历列表方法1:' for i in list: print ("序号:%s 值:%s&

  • Python实现中一次读取多个值的方法

    Python 2里面读取输入的函数是raw_input(), Python 3的是input(),读入一个值后回车读取输入就退出了,想要一次读取多个输入,可以像下面这样: a, b = raw_input().split() 输出的是字符串,要想读取的是数值,可以稍微改一下,像这样: a, b = map(int, raw_input().split()) int可以换成其它需要的类型,左边可以是任意多个变量 还可以把读取的值存到一个列表里: input_list = map(int, raw_

随机推荐