使用Python的MD5模块比较两个文件是否一致

本文介绍了如何使用Python内置的md5模块进行文件一致性校验,并提供了示例代码。同时讨论了处理大文件时可能遇到的内存问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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的文件)的时候会有内存问题。

python的md5模块使用非常简单,包括以下几个函数:

  • md5.new([arg])
    • 返回一个md5对象,如果给出参数,则相当于调用了update(arg)
  • md5.updte(arg)
    • 用string参数arg更新md5对象
  • md5.digest()
    • 返回16字节的摘要,由传给update的string生成,摘要没有ascii字符
  • md5.hexdigest()
    • 以16进制的形式返回摘要

代码示例:

01.#!/usr/bin/python
02.import sys
03.import md5
04. 
05.str=sys.argv[1]
06.key = md5.new()
07.key.update(str)
08.print key.hexdigest()
09.str=sys.argv[1]

保存代码为md.py

1.[fengyj@fengyj python]$ chmod +x md.py
2.[fengyj@fengyj python]$ ./md.py fengyajie
3.74d040444b8f20d37aa9b2bd2997cd64

转载于:https://www.cnblogs.com/pylemon/archive/2011/05/12/2044264.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值