Python 进阶(八):文件压缩(gzip、zipfile、tarfile 模块)

Python 进阶(八):文件压缩(gzip、zipfile、tarfile 模块)_第1张图片

❤️ 博客主页:水滴技术
订阅专栏:Python 入门核心技术
支持水滴:点赞 + 收藏⭐ + 留言

文章目录

  • 1. gzip模块
    • 1.1 创建 gzip 文件
    • 1.2 读取 gzip 文件
    • 1.3 解压缩 gzip 文件
  • 2. zipfile模块
    • 2.1 创建 zip 文件
    • 2.2 读取 zip 文件
    • 2.3 解压缩 zip 文件
  • 3. tarfile模块
    • 3.1 创建 tar 文件
    • 3.2 读取 tar 文件
    • 3.3 解压缩 tar 文件
  • 4. 总结
  • 系列文章
  • 热门专栏


大家好,我是水滴~~

Python 提供了多个文件压缩模块,包括 gzip、zipfile 和 tarfile 等。这些模块可以用来创建、读取和解压缩各种类型的压缩文件。在本教程中,我们将介绍这些模块的基本用法。

1. gzip模块

gzip 模块可以用于创建和读取 gzip 文件。gzip 文件是一种经过压缩的文件格式,通常用于在网络传输和数据存储中减小文件大小。

1.1 创建 gzip 文件

要创建 gzip 文件,可以使用 gzip 模块中的 GzipFile 类。示例代码如下:

import gzip

with gzip.open('example.txt.gz', 'wb') as f:
    f.write(b'Hello, world!')

在上述代码中,我们使用 gzip.open() 函数创建了一个名为 example.txt.gz 的 gzip 文件,使用 ‘wb’ 模式打开文件并写入数据。

1.2 读取 gzip 文件

要读取 gzip 文件,可以使用 gzip 模块中的 GzipFile 类。示例代码如下:

import gzip

with gzip.open('example.txt.gz', 'rb') as f:
    data = f.read()

print(data)

在上述代码中,我们使用 gzip.open() 函数打开了一个名为 example.txt.gz 的 gzip 文件,使用 ‘rb’ 模式读取文件并读取数据。

1.3 解压缩 gzip 文件

如果要将解压后的数据写入文件,可以使用类似以下的代码:

import gzip

with gzip.open('example.txt.gz', 'rb') as f_in:
    with open('example.txt', 'wb') as f_out:
        f_out.write(f_in.read())

在以上代码中,我们首先使用gzip模块中的GzipFile类读取gzip文件中的数据,然后再使用Python内置的open()函数打开一个新文件,使用’wb’模式写入数据,最后使用write()方法将解压后的数据写入该文件。

2. zipfile模块

zipfile 模块可以用于创建、读取和解压缩 zip 文件。zip 文件是一种经过压缩的文件格式,通常用于在网络传输和数据存储中减小文件大小。

2.1 创建 zip 文件

要创建 zip 文件,可以使用 zipfile 模块中的 ZipFile 类。示例代码如下:

import zipfile

with zipfile.ZipFile('example.zip', 'w') as f:
    f.write('example.txt')

在上述代码中,我们使用 zipfile.ZipFile() 函数创建了一个名为 example.zip 的 zip 文件,使用 ‘w’ 模式打开文件并写入数据。

2.2 读取 zip 文件

要读取 zip 文件,可以使用 zipfile 模块中的 ZipFile 类。示例代码如下:

import zipfile

with zipfile.ZipFile('example.zip', 'r') as f:
    data = f.read('example.txt')

print(data)

在上述代码中,我们使用 zipfile.ZipFile() 函数打开了一个名为 example.zip 的 zip 文件,使用 ‘r’ 模式读取文件并读取数据。

2.3 解压缩 zip 文件

要解压缩 zip 文件,可以使用 zipfile 模块中的 ZipFile 类。示例代码如下:

import zipfile

with zipfile.ZipFile('example.zip', 'r') as f:
    f.extractall()

在上述代码中,我们使用 zipfile.ZipFile() 函数打开了一个名为 example.zip 的 zip 文件,使用 ‘r’ 模式读取文件并解压缩所有文件到当前目录。

3. tarfile模块

tarfile 模块可以用于创建、读取和解压缩 tar 文件。tar 文件是一种经过压缩的文件格式,通常用于在网络传输和数据存储中减小文件大小。

3.1 创建 tar 文件

要创建 tar 文件,可以使用 tarfile 模块中的 TarFile 类。示例代码如下:

import tarfile

with tarfile.open('example.tar.gz', 'w:gz') as f:
    f.add('example.txt')

在上述代码中,我们使用 tarfile.open() 函数创建了一个名为 example.tar.gz 的 tar 文件,使用 ‘w:gz’ 模式打开文件并写入数据。

3.2 读取 tar 文件

要读取 tar 文件,可以使用 tarfile 模块中的 TarFile 类。示例代码如下:

import tarfile

with tarfile.open('example.tar.gz', 'r:gz') as f:
    data = f.extractfile('example.txt').read()

print(data)

在上述代码中,我们使用 tarfile.open() 函数打开了一个名为 example.tar.gz 的 tar 文件,使用 ‘r:gz’ 模式读取文件并读取数据。

3.3 解压缩 tar 文件

要解压缩 tar 文件,可以使用 tarfile 模块中的 TarFile 类。示例代码如下:

import tarfile

with tarfile.open('example.tar.gz', 'r:gz') as f:
    f.extractall()

在上述代码中,我们使用 tarfile.open() 函数打开了一个名为 example.tar.gz 的 tar 文件,使用 ‘r:gz’ 模式读取文件并解压缩所有文件到当前目录。

需要注意的是,tar 文件可以使用不同的压缩算法进行压缩,例如 gzip、bzip2 和 xz 等。因此,在使用 tarfile 模块时需要根据具体情况选择合适的模式。例如,如果要解压缩一个使用 bzip2 算法压缩的 tar 文件,可以使用 ‘r:bz2’ 模式打开文件。

4. 总结

Python 的文件压缩模块提供了创建、读取和解压缩各种类型的压缩文件的功能。在本教程中,我们介绍了 gzip、zipfile 和 tarfile 三个模块的基本用法,包括创建、读取和解压缩文件。对于需要处理压缩文件的 Python 程序,这些模块是非常有用的工具。


系列文章

Python 进阶(一):PyCharm 下载、安装和使用
Python 进阶(二):操作字符串的常用方法
Python 进阶(三):正则表达式(re 模块)
Python 进阶(四):日期和时间(time、datetime、calendar 模块)
Python 进阶(五):os 模块
Python 进阶(六):文件读写(I/O)
Python 进阶(七):高级文件操作(shutil 模块)

热门专栏

《Python入门核心技术》
《IDEA 教程:从入门到精通》
《Java 教程:从入门到精通》
《MySQL 教程:从入门到精通》
《大数据核心技术从入门到精通》

你可能感兴趣的:(Python入门核心技术,python,gzip,zipfile,tarfile)