全网整合营销服务商

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

免费咨询热线: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 


相关文章: 如何制作一个表白网站视频,关于勇敢表白的小标题?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站之星如何优化SEO以实现高效排名?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  建站VPS配置与SEO优化指南:关键词排名提升策略  导航网站建站方案与优化指南:一站式高效搭建技巧解析  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  如何构建满足综合性能需求的优质建站方案?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  C#怎么使用委托和事件 C# delegate与event编程方法  盘锦网站制作公司,盘锦大洼有多少5G网站?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  如何快速搭建自助建站会员专属系统?  如何选择高效稳定的ISP建站解决方案?  大连 网站制作,大连天途有线官网?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  定制建站如何定义?其核心优势是什么?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何基于云服务器快速搭建网站及云盘系统?  网站按钮制作软件,如何实现网页中按钮的自动点击?  如何在IIS中新建站点并解决端口绑定冲突?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  个人摄影网站制作流程,摄影爱好者都去什么网站?  制作表格网站有哪些,线上表格怎么弄?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  C#如何序列化对象为XML XmlSerializer用法  Python路径拼接规范_跨平台处理说明【指导】  昆明高端网站制作公司,昆明公租房申请网上登录入口?  微信h5制作网站有哪些,免费微信H5页面制作工具?  深入理解Android中的xmlns:tools属性  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  北京制作网站的公司,北京铁路集团官方网站?  如何选择域名并搭建高效网站?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何通过VPS搭建网站快速盈利?  西安大型网站制作公司,西安招聘网站最好的是哪个?  如何用免费手机建站系统零基础打造专业网站?  如何确认建站备案号应放置的具体位置?  黑客如何通过漏洞一步步攻陷网站服务器?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  无锡营销型网站制作公司,无锡网选车牌流程?  如何在IIS中新建站点并配置端口与IP地址?  存储型VPS适合搭建中小型网站吗?  中山网站推广排名,中山信息港登录入口?  宝塔建站后网页无法访问如何解决?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  昆明网站制作哪家好,昆明公租房申请网上登录入口? 

您的项目需求

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