全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

利用Python生成文件md5校验值函数的方法

前言

在linux有个命令叫做md5sum,能生成文件的md5值,一般情况下都会将结果记录到一个文件中用于校验使用,比如会这样使用:

[crazyant@localhost PythonMd5]$ more sample_file 
www.crazyant.net
www.51projob.com
[crazyant@localhost PythonMd5]$ md5sum sample_file > sample_file.md5file
[crazyant@localhost PythonMd5]$ more sample_file.md5file 
311d384505e3622ccf85d88930e2b0a0 sample_file
[crazyant@localhost PythonMd5]$ md5sum -c sample_file.md5file 
sample_file: OK

其中md5sum -c用于检测生成的md5值是否正确。

使用python生成文件md5值以及生成和md5sum结果一样的结果文件

python可以使用hashlib的md5模块对文件内容进行md5校验码生成,如果要生成和md5sum一样的结果文件,只需要将MD5结果值和文件名输出一行,中间有两个空格输出即可。

测试代码:

# -*- encoding:utf-8 -*-
from hashlib import md5
import os
 
def generate_file_md5value(fpath):
 '''以文件路径作为参数,返回对文件md5后的值
 '''
 m = md5()
 # 需要使用二进制格式读取文件内容
 a_file = open(fpath, 'rb') 
 m.update(a_file.read())
 a_file.close()
 return m.hexdigest()
 
def generate_file_md5sumFile(fpath):
 fname = os.path.basename(fpath)
 fpath_md5 = "%s.md5" % fpath
 fout = open(fpath_md5, "w")
 fout.write("%s %s\n" % (generate_file_md5value(fpath), fname.strip()))
 print "generate success, fpath:%s" % fpath_md5
 fout.flush()
 fout.close()
 
if __name__ == "__main__":
 fpath = "/home/users/workbench/PythonMd5/sample_file"
 # 测试一:以文件路径作为参数,获得md5后的字符串
 print generate_file_md5value(fpath)
 
 # 测试二:生成和linux命令:md5sum同样结果的.md5文件
 generate_file_md5sumFile(fpath)

运行结果:

[crazyant@localhost PythonMd5]$ python generateMd5file.py
311d384505e3622ccf85d88930e2b0a0
generate success, fpath:/home/crazyant/workbench/PythonMd5/sample_file.md5
[crazyant@localhost PythonMd5]$ md5sum -c sample_file.md5
sample_file: OK

注意点

在windows下开发的代码,如果直接提交到linux运行,经常因为windows下的换行符是\r\n而linux是\n的缘故导致代码执行失败,一般情况下都要进行一下转换。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对的支持。


# python  # md5校验  # python生成md5  # 校验文件md5  # Python函数式编程指南:对生成器全面讲解  # Python企业编码生成系统之系统主要函数设计详解  # Python使用functools模块中的partial函数生成偏函数  # 深入理解python函数递归和生成器  # Python函数式编程指南(四):生成器详解  # 简单分析Python中用fork()函数生成的子进程  # Python函数生成器原理及使用详解  # 有个  # 都要  # 只需  # 可以使用  # 要将  # 这篇文章  # 谢谢大家  # 会将  # 是否正确  # 校验码  # 有两个  # 换行符  # 有疑问  # md5file  # code  # encoding  # utf  # py  # hashlib 


相关文章: 建站之星代理费用多少?最新价格详情介绍  如何用PHP快速搭建CMS系统?  视频网站制作教程,怎么样制作优酷网的小视频?  高端云建站费用究竟需要多少预算?  如何在云主机上快速搭建网站?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  山东云建站价格为何差异显著?  如何在IIS服务器上快速部署高效网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  建站之星后台密码遗忘或太弱?如何重置与强化?  制作证书网站有哪些,全国城建培训中心证书查询官网?  建站主机是什么?如何选择适合的建站主机?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  如何在Golang中使用replace替换模块_指定本地或远程路径  如何用VPS主机快速搭建个人网站?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何通过IIS搭建网站并配置访问权限?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  大连网站设计制作招聘信息,大连投诉网站有哪些?  制作企业网站建设方案,怎样建设一个公司网站?  SQL查询语句优化的实用方法总结  图册素材网站设计制作软件,图册的导出方式有几种?  如何快速搭建二级域名独立网站?  如何选择PHP开源工具快速搭建网站?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  ,在苏州找工作,上哪个网站比较好?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站之星24小时客服电话如何获取?  如何构建满足综合性能需求的优质建站方案?  建站DNS解析失败?如何正确配置域名服务器?  在线教育网站制作平台,山西立德教育官网?  h5网站制作工具有哪些,h5页面制作工具有哪些?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  ,购物网站怎么盈利呢?  ,网站推广常用方法?  如何做静态网页,sublimetext3.0制作静态网页?  如何选择服务器才能高效搭建专属网站?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  建站之星在线版空间:自助建站+智能模板一键生成方案  网页设计网站制作软件,microsoft office哪个可以创建网页?  内网网站制作软件,内网的网站如何发布到外网?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  如何用西部建站助手快速创建专业网站?  如何通过老薛主机一键快速建站?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。