当前位置: 首页 > news >正文

沈阳网络建网站建各企业网站多少钱

沈阳网络建网站,建各企业网站多少钱,wordpress自动博客,钢板防护罩做网站GNU zlib 压缩与解压文件详细介绍 1.概述 zlib 模块为 GNU 项目的 zlib 压缩库中的许多函数提供了一个低级接口 2.使用内存数据压缩与解压 2.1.压缩与解压缩 使用 zlib 的最简单方法是将所有数据保存在内存中进行压缩或解压缩。 import zlib import binasciioriginal_dat…

GNU zlib 压缩与解压文件详细介绍

1.概述

zlib 模块为 GNU 项目的 zlib 压缩库中的许多函数提供了一个低级接口

2.使用内存数据压缩与解压

2.1.压缩与解压缩

使用 zlib 的最简单方法是将所有数据保存在内存中进行压缩或解压缩。

import zlib
import binasciioriginal_data = b'This is the original text.'
print('Original     :', len(original_data), original_data)compressed = zlib.compress(original_data)
print('Compressed   :', len(compressed),binascii.hexlify(compressed))decompressed = zlib.decompress(compressed)
print('Decompressed :', len(decompressed), decompressed)

运行结果

Original     : 26 b'This is the original text.'
Compressed   : 32 b'789c0bc9c82c5600a2928c5485fca2ccf4ccbcc41c8592d48a123d007f2f097e'
Decompressed : 26 b'This is the original text.'

2.2.压缩级别

zlib 支持几种不同的压缩级别,允许在计算时间成本和空间成本之间取得平衡。
默认压缩级别 zlib.Z_DEFAULT_COMPRESSION 对应于性能和压缩结果之间折中的硬编码值,这当前对应于级别 6

如该示例所示,对于给定输入,可以使用多个压缩级别来实现相同的尺寸减小。

import zlibinput_data = b'Some repeated text.\n' * 1024
template = '{:>5}  {:>5}'print(template.format('Level', 'Size'))
print(template.format('-----', '----'))for i in range(0, 10):data = zlib.compress(input_data, i)print(template.format(i, len(data)))

运行结果

python3 zlib_compresslevel.pyLevel   Size
-----   ----0  204911    1722    1723    1724     985     986     987     988     989     98

2.3.增量压缩和解压缩

内存的存储是有限的,对大文件进行压缩和解压操作时,系统需要足够的内存来同时保存驻留在内存中的未压缩和压缩内容,这个不太现实。因此我们选择增量压缩,使用 CompressDecompress 对象来逐步操作数据,这样整个数据集就不必全部纳入内存。

import zlib
import binasciicompressor = zlib.compressobj(1)with open('lorem.txt', 'rb') as input:while True:block = input.read(64)if not block:breakcompressed = compressor.compress(block)if compressed:print('Compressed: {}'.format(binascii.hexlify(compressed)))else:print('buffering...')remaining = compressor.flush()print('Flushed: {}'.format(binascii.hexlify(remaining)))

此示例从纯文本文件中读取小块数据并将其传递给 compress()。压缩器维护一个压缩数据的内部缓冲区。由于压缩算法取决于校验和和最小块大小,因此压缩器可能无法在每次接收到更多输入时返回数据。如果它没有准备好整个压缩块,则返回一个空字节字符串。当所有数据都被输入时,flush() 方法强制压缩器关闭最后一个块并返回其余的压缩数据

python3 zlib_incremental.pyCompressed: b'7801'
buffering...
buffering...
buffering...
buffering...
buffering...
Flushed: b'55904b6ac4400c44f73e451da0f129b20c2110c85e696b8c40dde
dd167ce1f7915025a087daa9ef4be8c07e4f21c38962e834b800647435fd3b90
747b2810eb9c4bbcc13ac123bded6e4bef1c91ee40d3c6580e3ff52aad2e8cb2
eb6062dad74a89ca904cbb0f2545e0db4b1f2e01955b8c511cb2ac08967d228a
f1447c8ec72e40c4c714116e60cdef171bb6c0feaa255dff1c507c2c4439ec96
05b7e0ba9fc54bae39355cb89fd6ebe5841d673c7b7bc68a46f575a312eebd22
0d4b32441bdc1b36ebf0aedef3d57ea4b26dd986dd39af57dfb05d32279de'

2.4.校验数据完整性

除了压缩和解压缩功能外,zlib 还包括两个用于计算数据校验和的函数,adler32() 和 crc32()。校验和都不是加密安全的,它们仅用于数据完整性验证。

import zlibdata = open('lorem.txt', 'rb').read()cksum = zlib.adler32(data)
print('Adler32: {:12d}'.format(cksum))
print('       : {:12d}'.format(zlib.adler32(data, cksum)))cksum = zlib.crc32(data)
print('CRC-32 : {:12d}'.format(cksum))
print('       : {:12d}'.format(zlib.crc32(data, cksum)))

两个函数都使用相同的参数,一个包含数据的字节字符串和一个可选值,用作校验和的起点。它们返回一个 32 位有符号整数值,该值也可以作为新的起始点参数在后续调用时传回,以生成 running 校验和。

python3 zlib_checksums.pyAdler32:   3542251998:    669447099
CRC-32 :   3038370516:   2870078631
http://www.yayakq.cn/news/796337/

相关文章:

  • 电子商务网站设计与规划高端食品品牌排行榜前十名
  • 外贸电商网站开发价格福建做网站公司
  • 东莞齐诺做网站湖北seo网站设计
  • 网站后台用什么语言网页设计与制作ppt课件
  • 网站统计分析如何给网站做高质量外链
  • 大同网站建设优化推广最专业网站建设公司
  • 网站网站建站郑州个人做网站
  • 网站开发怎样建立后台数据如何制作qq小程序
  • 网站建设功能评估表上海松江网站设计公司
  • 地方门户网站app济宁医院网站建设
  • 北京网站建设推广服公司网站维护经验总结
  • 企业网站建设模板多少钱沈阳高端网站
  • 网站建设策划书结束语网站建设 小程序开发 营销推广
  • 泸州市建设工程质量监督站网站汉字域名的网站
  • 长春市制作网站费用的网站建设公司
  • php ajax网站开发典型实例pdf城市分站seo
  • 仿站模板购物网站开发教程中文
  • 秦皇岛做网站的公司哪家好网站备案太慢
  • 做招聘网站需要什么人员国内十大网站建设品牌
  • 信息门户网站开发合同人个做外贸用什么网站好
  • 做网站被骗预付款怎么办怎么做网站企业介绍
  • 为什么很多公司没自己的网站做彩票网站犯法不
  • 网站如何建设与优化洛阳网红
  • flash网站建设教程视频链接转wordpress
  • python企业网站开发wordpress wp_link_pages
  • 武邑网站建设价格旅游网站首页设计模板
  • 福建住房和城乡建设局网站有没有做黑市网站
  • 网站建设费算什么费用宁波建设网 提取业务
  • 携手并进 合作共赢上海seo优化培训机构
  • 定制网站制作技术城乡建设厅建筑特种作业证书查询