python文件数据压缩-给数据生成签名

文件数据压缩

import zlib
import gzip
## gzip 和zlib使用一模一样将zlib改成gzip就可以
import requests

res = requests.get('http://www.*.com')

with open('*.html', 'w', encoding='utf-8') as file:
    file.write(res.text)
    with open('sohu_index.zip', 'wb') as file2:
        # compress函数第一个参数是要压缩的数据的二进制(bytes)
        # 第二个参数代表压缩级别0-9,0速度最快,9压缩比最高
        # decompress 解压缩
        file2.write(zlib.compress(res.content, 9))


# 解压缩
with open('sohu_index.zip', 'rb') as file:
    unzip_data = gzip.decompress(file.read())
    print(unzip_data.decode('utf-8'))

# 压缩图片
with open('aa.jpg', 'rb') as file:
    # compress函数第一个参数是要压缩的数据的二进制(bytes)
    # 第二个参数代表压缩级别0-9,0速度最快,9压缩比最高
    with open('aa.gz', 'wb') as file2:
        file2.write(gzip.compress(file.read(), 9))

给数据生成签名

"""
给数据生成签名(signature) /指纹(fingerprint) /摘要(digest)
MD5 / SHA-1 / SHA-256  --->  签名算法(哈希函数)  ---> 摘要
特点 不同的对象几乎不可能差生相同的签名(每个对象的摘要都是独一无二的)
对象  --->  MD5  --->  128bit  --->  32个十六进制字符
对象  --->  SHA256  --->  256bit  --->  64个十六进制字符
hashlib  --->  md5  /  sha1  /  sha256   ---> hexdigest()
"""
import hashlib

hashes = hashlib.md5()

with open('python-3.9.6-amd64.exe', 'rb') as file:
    # data = file.read(512)
    # while data:
    #     hashes.update(data)
    #     data = file.read()
    for data in iter(lambda: file.read(512), b''):
        hashes.update(data)

print(hashes.hexdigest())
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

azured_xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值