前言

在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小时内与您取得联系。