python散装笔记——133: 开始使用GZip

liftword2个月前 (03-03)技术文章15

本章介绍了如何使用Python的gzip模块来处理GZip格式的压缩文件。gzip模块提供了一个简单的接口,用于压缩和解压缩文件,类似于GNU程序gzipgunzip的功能。数据压缩由zlib模块提供。

gzip模块提供了GzipFile类,该类模仿了Python的文件对象。GzipFile类可以读取和写入GZip格式的文件,自动压缩或解压缩数据,使其看起来像一个普通的文件对象。

1: 读取和写入GNU zip文件

 import gzip
 import os
 
 # 定义输出文件名
 outfilename = 'example.txt.gz'
 
 # 打开文件以写入二进制模式
 output = gzip.open(outfilename, 'wb')
 try:
     # 写入内容
     output.write(b'Contents of the example file go here.\n')  # 注意:写入的内容必须是字节类型
 finally:
     # 关闭文件
     output.close()
 
 # 打印文件信息
 print(outfilename, 'contains', os.stat(outfilename).st_size, 'bytes of compressed data')
 
 # 使用系统命令检查文件类型
 os.system('file -b --mime %s' % outfilename)

将上述代码保存为gzip_write.py,并通过终端运行它。

 $ python gzip_write.py
 
 application/x-gzip; charset=binary
 example.txt.gz contains 68 bytes of compressed data

代码说明

  1. 写入GZip文件
  2. 使用gzip.open()打开文件,指定文件名和模式(wb表示以二进制写入模式打开)。
  3. 写入内容时,必须确保内容是字节类型(例如使用b'...')。
  4. 使用try...finally确保文件在操作完成后正确关闭。
  5. 文件信息
  6. 使用os.stat()获取文件的大小(st_size属性)。
  7. 使用os.system()调用系统命令file来检查文件的MIME类型。

输出解释

  • application/x-gzip; charset=binary:表示文件是一个GZip压缩文件。
  • example.txt.gz contains 68 bytes of compressed data:表示压缩后的文件大小为68字节。

注意事项

  • 写入GZip文件时,内容必须是字节类型。如果需要写入字符串,可以使用str.encode()方法将其转换为字节类型,例如:
 output.write('Contents of the example file go here.\n'.encode('utf-8'))
  • 在读取GZip文件时,同样需要以二进制模式打开文件,并在需要时将内容解码为字符串。

相关文章

最全RAR文件操作指南:如何用Python压缩、解压与筛选文件

引言:Python 对 .rar 文件进行压缩、解压以及筛选特定文件的操作代码封装一下import os import rarfile #todo 用于处理 RAR 文件 import zipfil...

Python全能压缩:ZIP的压缩、解压、文件筛选与删除,一键搞定!

引言:这个方法实现了文件压缩与解压的常见操作,涵盖内容如下:1、从文件夹创建 ZIP 文件 2、从文件夹创建 ZIP 文件(筛选特定文件) 3、解压 ZIP 文件中的所有内容 4、解压 ZIP...

15《Python 办公自动化教程》文件压缩与解压缩

压缩包也是我们平时工作中经常要接触到的文件格式,压缩文件后缀名通常有 .zip、.rar、.7z 等等。Python 中也有专门用来操作压缩包文件的第三方模块 zipfile。听这个名字就知道是用来操...

小明用Python暴力破解压缩文件zip密码,省了250块钱

那天晚上小明和你一样在某个小网站上搜寻某些私密的学习资料突然看到论坛有人提供了一个非常牛逼的资源小明怀着激动的心情下载了下来他怀着激动的心情打开了这个压缩文件看到就只有这么一个 txt 小明就是一顿双...

使用 Python 在 Excel 中插入、压缩、替换、提取和删除图像

Excel 不仅仅是一个数字和公式的工具;它还提供了用于处理图像的强大功能。无论您是创建报告、演示文稿还是数据可视化,合并图像都可以大大提高 Excel 项目的整体影响力和专业性。在 Excel 中...

Python 简单的解压缩算法

line = input().strip() need_ch = [] for i in range(len(line)): if line[i].isalpha(): if...