标题: [原创教程] python读取配置文件对比文件MD5.py [打印本页]
作者: codegay 时间: 2016-2-27 04:17 标题: python读取配置文件对比文件MD5.py
本帖最后由 codegay 于 2016-2-27 14:14 编辑
- """
- python读取配置文件对比文件MD5.py
- http://www.oschina.net/question/2635041_2151586
- 2016年2月26日 21:09:52 codegay
-
- """
- import re
- import hashlib
-
-
- def configmd5(file="file.md5"):
- configdict={r.rstrip("\n").split(":")[0]:r.rstrip("\n").split(":")[1] for r in open(file).readlines()}
- return configdict
-
- def configmd51(file="file.md5"):
- configdict={}
- for r in open(file):
- fmd5=r.rstrip("\n").split(":")
- configdict[fmd5[0]]=fmd5[1]
- return configdict
-
- def reconfigmd5(file="file.md5"):
- import re
- txt=open(file).read()
- result=re.findall(r"(.*/?.+):([a-fA-F0-9]{32})",txt)
- configdict={k:v for k,v in result}
- return configdict
- #以上三个函数功能一样,都是读取配置文件file.md5数据成对格式化为字典。
-
- def md5(seq):
- results={}
- for s in seq:
- #如果考虑处理超大的文件或者控制内存的占用量,
- #不能使用一次性读取文件的写法
- fb=open(s,"rb").read()
- fmd5=hashlib.md5(fb).hexdigest()
- results[s]=[cmd5[s],fmd5,cmd5==fmd5]
- #字典存储结果,{文件名作为键名:[配置文件中的MD5值,实际文件的MD5,对比结果]
- print(results)
- return results
-
- cmd5=reconfigmd5()
- md5(cmd5.keys())
复制代码
作者: codegay 时间: 2016-2-27 06:07
- >>> import hashlib
- >>> hashlib.md5(open("c:/grep.exe","rb").read()).hexdigest()
- 'bb350a9ac2236b3e29f2229e77709f40'
复制代码
作者: codegay 时间: 2016-2-27 15:04
- import os
- import hashlib
- {r:hashlib.sha256(open(r,"rb").read()).hexdigest() for r in os.listdir() if os.path.isfile(r) and r.endswith(".exe")}
- #当前目录下所有.exe sha256的哈希值
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |