Python基础入门 Day82 文件压缩与解压

92次阅读
没有评论

共计 1432 个字符,预计需要花费 4 分钟才能阅读完成。

在处理大量数据时,文件压缩是节省存储空间和便于传输的常见做法。Python 的 shutil 模块提供了便捷的文件压缩和解压缩方法,支持多种压缩格式,如 ziptar。本节我们将学习如何使用 Python 来进行文件的压缩与解压操作。

  1. 压缩文件(zip 格式)
    shutil.make_archive() 方法可以将指定文件夹压缩为 zip 格式。
import shutil

# 压缩文件夹为 zip 格式
shutil.make_archive("backup", "zip", "folder_to_compress")

shutil.make_archive() 的参数解释:

  • 第一个参数:目标压缩文件的路径(不带扩展名)。
  • 第二个参数:压缩格式(如 ziptar)。
  • 第三个参数:要压缩的文件夹路径。
  1. 压缩文件为 tar 格式
    除了 zip 格式,还可以将文件压缩为 tar 格式,常用于 Linux 系统。
shutil.make_archive("backup", "tar", "folder_to_compress")

此方法可以创建 .tar.tar.gz 格式的压缩文件。

  1. 解压文件(zip 格式)
    使用 shutil.unpack_archive() 方法来解压 .zip 文件。
import shutil

# 解压 zip 文件
shutil.unpack_archive("backup.zip", "extracted_folder")

unpack_archive() 的参数解释:

  • 第一个参数:待解压的压缩文件路径。
  • 第二个参数:解压后的目标文件夹路径。
  1. 解压 tar 文件
    解压 .tar.tar.gz 文件同样使用 unpack_archive() 方法:
shutil.unpack_archive("backup.tar", "extracted_folder")
shutil.unpack_archive("backup.tar.gz", "extracted_folder")

unpack_archive() 会根据文件的扩展名自动选择解压方式。

  1. 解压指定文件格式
    unpack_archive() 也支持指定格式,例如 ziptar
shutil.unpack_archive("backup.zip", "extracted_folder", "zip")
  1. 通过 zipfile 模块进行更细粒度的操作
    shutil 模块提供了简单的压缩和解压功能,但如果需要更精细的操作,比如密码保护的 zip 文件,我们可以使用 zipfile 模块。
import zipfile

# 创建 zip 文件
with zipfile.ZipFile("backup.zip", "w") as zipf:
    zipf.write("file1.txt")
    zipf.write("file2.txt")

# 解压 zip 文件
with zipfile.ZipFile("backup.zip", "r") as zipf:
    zipf.extractall("extracted_folder")

在这个例子中,zipfile 模块让我们可以更细致地控制压缩与解压过程,甚至支持添加密码等特性。

总结:
本节学习了如何使用 shutilzipfile 模块进行文件的压缩与解压操作。通过这些方法,我们能够方便地管理和传输大量文件,特别是在备份和存档过程中非常有用。

练习与思考:

  1. 编写一个程序,将某个文件夹下的所有 .txt 文件压缩为 .zip 文件。
  2. 解压一个 .tar.gz 文件,并打印出解压后的文件列表。
  3. 使用 zipfile 模块创建一个压缩包,并逐个添加文件。
正文完
 0
评论(没有评论)