找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 15192|回复: 2

[原创教程] python读取配置文件对比文件MD5.py

[复制链接]
发表于 2016-2-27 04:17:58 | 显示全部楼层 |阅读模式
本帖最后由 codegay 于 2016-2-27 14:14 编辑
  1. """
  2. python读取配置文件对比文件MD5.py
  3. http://www.oschina.net/question/2635041_2151586
  4. 2016年2月26日 21:09:52 codegay

  5. """
  6. import re
  7. import hashlib


  8. def configmd5(file="file.md5"):
  9.     configdict={r.rstrip("\n").split(":")[0]:r.rstrip("\n").split(":")[1] for r in open(file).readlines()}
  10.     return configdict

  11. def configmd51(file="file.md5"):
  12.     configdict={}
  13.     for r in open(file):
  14.         fmd5=r.rstrip("\n").split(":")
  15.         configdict[fmd5[0]]=fmd5[1]
  16.     return configdict

  17. def reconfigmd5(file="file.md5"):
  18.     import re
  19.     txt=open(file).read()
  20.     result=re.findall(r"(.*/?.+):([a-fA-F0-9]{32})",txt)
  21.     configdict={k:v for k,v in result}
  22.     return configdict
  23. #以上三个函数功能一样,都是读取配置文件file.md5数据成对格式化为字典。

  24. def md5(seq):
  25.     results={}
  26.     for s in seq:
  27.         #如果考虑处理超大的文件或者控制内存的占用量,
  28.         #不能使用一次性读取文件的写法
  29.         fb=open(s,"rb").read()
  30.         fmd5=hashlib.md5(fb).hexdigest()
  31.         results[s]=[cmd5[s],fmd5,cmd5==fmd5]
  32.         #字典存储结果,{文件名作为键名:[配置文件中的MD5值,实际文件的MD5,对比结果]
  33.     print(results)
  34.     return results
  35.                
  36. cmd5=reconfigmd5()
  37. md5(cmd5.keys())
复制代码
 楼主| 发表于 2016-2-27 06:07:58 | 显示全部楼层
  1. >>> import hashlib
  2. >>> hashlib.md5(open("c:/grep.exe","rb").read()).hexdigest()
  3. 'bb350a9ac2236b3e29f2229e77709f40'
复制代码
 楼主| 发表于 2016-2-27 15:04:16 | 显示全部楼层
  1. import os
  2. import hashlib
  3. {r:hashlib.sha256(open(r,"rb").read()).hexdigest() for r in os.listdir() if os.path.isfile(r) and r.endswith(".exe")}
  4. #当前目录下所有.exe sha256的哈希值
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:49 , Processed in 0.017017 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表