python 计算md5
来源:互联网 发布:考研没动力怎么办知乎 编辑:程序博客网 时间:2024/05/17 06:31
import osimport timeimport md5#get md5 of a input stringdef GetStringMD5(str): m = md5.new() m.update(str) return m.hexdigest()#get md5 of a input filedef GetFileMD5(file): fileinfo = os.stat(file) if int(fileinfo.st_size)/(1024*1024)>1000: return GetBigFileMD5(file) m = md5.new() f = open(file,'rb') m.update(f.read()) f.close() return m.hexdigest()#get md5 of a input bigfiledef GetBigFileMD5(file): m = md5.new() f = open(file,'rb') maxbuf = 8192 while 1: buf = f.read(maxbuf) if not buf: break m.update(buf) f.close() return m.hexdigest()#get md5 of a input folder.#result will be output to the specified filedef GetBetchFilesMD5(dir,outMD5File): outfile = open(outMD5File,'w') for root ,subdirs, files in os.walk(dir): for file in files: filefullpath = os.path.join(root,file) md5 = GetFileMD5(filefullpath) outfile.write(filefullpath+' md5: '+md5+"\n") print filefullpath+' md5: '+md5+"\n" outfile.close()if __name__ == "__main__": print GetStringMD5('Jenson.ZhangPeng@Gmail.com') print GetStringMD5("E:\TDDOWNLOAD\music\\A Fine Frenzy - Almost Lover.mp3") print GetFileMD5("e:\\tencent\\boost_1_49_0.zip") print GetBigFileMD5("e:\\tencent\\boost_1_49_0.zip") print GetBetchFilesMD5("e:\\TDDOWNLOAD","d:\\outMD5File.txt")