python计算大文件的md5、sha1值
版权声明:本文系作者原创。未经许可,不得转载。
大文件如果一次性读入计算,会占用大量内存,可以分块读取、分块计算,效果与一次读取计算相同。代码如下:
import hashlib
import base64
'''
sha1 file with filename (SHA1)
'''
def SHA1FileWithName(fineName, block_size=64 * 1024):
with open(fineName, 'rb') as f:
sha1 = hashlib.sha1()
while True:
data = f.read(block_size)
if not data:
break
sha1.update(data)
retsha1 = base64.b64encode(sha1.digest())
return retsha1
'''
md5 file with filename (MD5)
'''
def MD5FileWithName(fineName, block_size=64 * 1024):
with open(fineName, 'rb') as f:
md5 = hashlib.md5()
while True:
data = f.read(block_size)
if not data:
break
md5.update(data)
retmd5 = base64.b64encode(md5.digest())
return retmd5
辛巴
it男
256 声望
4 粉丝
推荐阅读
mac下编译go-ethereum
macos: 10.14.4 下载go-ethereum源码,按照文档执行命令编译: $ make all 报错:fatal error: 'stdlib.h' file not found /usr/include 查看xcode是否安装: $ xcode-select --install xcode-select: error: com...
lansheng228赞 2阅读 3.3k
基于Sanic的微服务基础架构
使用python做web开发面临的一个最大的问题就是性能,在解决C10K问题上显的有点吃力。有些异步框架Tornado、Twisted、Gevent 等就是为了解决性能问题。这些框架在性能上有些提升,但是也出现了各种古怪的问题难以...
jysong赞 6阅读 3.9k评论 3
滚蛋吧,正则表达式!
你是不是也有这样的操作,比如你需要使用「电子邮箱正则表达式」,首先想到的就是直接百度上搜索一个,然后采用 CV 大法神奇地接入到你的代码中?
良许赞 4阅读 2.2k
又一款眼前一亮的Linux终端工具!
今天给大家介绍一款最近发现的功能十分强大,颜值非常高的一款终端工具。这个神器我是在其他公众号文章上看到的,但他们都没把它的强大之处介绍明白,所以我自己体验一波后,再向大家分享自己的体验。
良许赞 5阅读 1.8k
FastAPI性能碾压Flask?
不止一次的听过,FastAPI性能碾压Flask,直追Golang,不过一直没有测试过,今天闲着没事测试一下看看结果。不知道是哪里出了问题,结果大跌眼镜。
二毛erma0赞 2阅读 10.1k评论 3
程序员适合创业吗?
大家好,我是良许。从去年 12 月开始,我已经在视频号、抖音等主流视频平台上连续更新视频到现在,并得到了不错的评价。每个视频都花了很多时间精力用心制作,欢迎大家关注哦~考虑到有些小伙伴没有看过我的视频,...
良许赞 3阅读 1.8k
Python之如何优雅的重试
为了避免偶尔的网络连接失败,需要加上重试机制,那么最简单的形式就是在对应的代码片段加一个循环,循环体里使用异常捕获,连接成功时退出循环,否则就重复执行相关逻辑,此时修改之后的函数f如下
Harpsichord1207赞 3阅读 7.3k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。