Chinaunix首页 | 论坛 | 博客
  • 博客访问: 417396
  • 博文数量: 72
  • 博客积分: 2541
  • 博客等级: 少校
  • 技术积分: 756
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-20 16:08
文章分类

全部博文(72)

文章存档

2013年(13)

2009年(1)

2008年(7)

2007年(45)

2006年(6)

我的朋友

分类: Python/Ruby

2013-06-25 15:23:43

最近在测试文件拷贝测试,需要对文件拷贝后进行MD5值比较,看是不是拷贝完全。google和baidu上都是使用md5模块读取所有的文件进内存,在计算md5,导致计算超过1G大小的文件报错。timespace兄给出了增量计算MD5的方法,记录一下:


点击(此处)折叠或打开

  1. #!/usr/bin/env python

  2. import hashlib
  3. import sys

  4. def main():
  5.     if len(sys.argv) != 2:
  6.         sys.exit('Usage: %s file' % sys.argv[0])

  7.     filename = sys.argv[1]
  8.     m = hashlib.md5()
  9.     with open(filename, 'rb') as fp:
  10.         while True:
  11.             blk = fp.read(4096) # 4KB per block
  12.             if not blk: break
  13.             m.update(blk)
  14.     print m.hexdigest(), filename

  15. if __name__ == '__main__':
  16.     main()


阅读(10599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~