当我们想要将一个文件夹加入到 zip 压缩包中时,可以使用 Python 标准库 zipfile 提供的方法来实现。下面是详细的操作流程:
- 导入 zipfile 库
import zipfile
- 实例化 ZipFile 对象
# file_name 是压缩包的路径和名称,可以自己定义
my_zipfile = zipfile.ZipFile(file_name, 'w')
- 将文件夹添加到压缩包中
# dir_path 是要压缩的文件夹的路径
my_zipfile.write(dir_path, compress_type=zipfile.ZIP_DEFLATED)
其中,zipfile.ZIP_DEFLATED
表示采用 zlib 压缩算法(不使用该参数时,则默认使用存储(即未压缩)),ZIP_BZIP2
表示采用 BZIP2 压缩算法等。
- 关闭 ZipFile 对象
my_zipfile.close()
下面给出两个完整的示例说明:
- 示例 1:将 test 文件夹添加到压缩包中
import zipfile
# 压缩包路径和名称
file_name = 'test.zip'
# 实例化 ZipFile 对象
my_zipfile = zipfile.ZipFile(file_name, 'w')
# 将 test 文件夹添加到压缩包中
dir_path = 'test'
my_zipfile.write(dir_path, compress_type=zipfile.ZIP_DEFLATED)
# 关闭 ZipFile 对象
my_zipfile.close()
- 示例 2:将 multiple 文件夹和其中的所有文件添加到压缩包中
import zipfile
import os
# 压缩包路径和名称
file_name = 'multiple.zip'
# 实例化 ZipFile 对象
my_zipfile = zipfile.ZipFile(file_name, 'w')
# 遍历 multiple 文件夹,并将其中的所有文件添加到压缩包中
dir_path = 'multiple'
for root, dirs, files in os.walk(dir_path):
for file in files:
full_path = os.path.join(root, file)
my_zipfile.write(full_path, compress_type=zipfile.ZIP_DEFLATED)
# 关闭 ZipFile 对象
my_zipfile.close()
在例 2 中,使用 os.walk 遍历 multiple 文件夹,然后将每一个文件的完整路径传入 write
方法中,将其添加到压缩包中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 标准库zipfile将文件夹加入压缩包的操作方法 - Python技术站