您的位置:首页 > 编程语言 > Python开发

python 计算md5

2012-11-02 16:35 423 查看
import os
import time
import md5

#get md5 of a input string
def GetStringMD5(str):
m = md5.new()
m.update(str)
return m.hexdigest()

#get md5 of a input file
def 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 bigfile
def 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 file
def 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")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: