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

用python计算文件的md5值

2007-12-09 20:56 661 查看
在Python中内置了md5的实现,就是md5模块,因此可以很简单的处理比较两个文件是否一致的问题。如以下代码片断:

import os,sys,md5

f1 = open(’f:/1.txt’,’r’)

f2 = open(’f:/1.txt’,’r’)

print md5.new( f1.read() ).digest() == md5.new( f2.read() ).digest()

以上处理在处理比较大的文件(比如几百M的文件)的时候会有内存问题。

----------------------------------------------

另外的实现方法
代码:
import md5
import sys

def sumfile(fobj):
m = md5.new()
while True:
d = fobj.read(8096)
if not d:
break
m.update(d)
return m.hexdigest()

def md5sum(fname):
if fname == '-':
ret = sumfile(sys.stdin)
else:
try:
f = file(fname, 'rb')
except:
return 'Failed to open file'
ret = sumfile(f)
f.close()
return ret

if __name__ == '__main__':
for fname in sys.argv[1:]:
print '%32s  %s' % (md5sum(fname), fname)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: