python 利用zipfile压缩文件夹

1、目录结构

  • test
    • kkk
    • kkk-1.xml
    • compress.py

2、预期

在test文件夹下生成一个kkk.zip的压缩文件

  • test
    • kkk
    • kkk-1.xml
    • compress.py
    • kkk.zip

压缩文件里的结构

  • kkk
    • kkk-1.xml

3、流程

import zipfile
import os


def compressed_file(folder_path, folder_name, file_name):
    zip_file_name = f'{folder_name}.zip'
    zip_file = zipfile.ZipFile(zip_file_name, 'w', zipfile.ZIP_DEFLATED)
    file_path = os.path.join(folder_path, file_name)
    archive_path = os.path.join(folder_name, file_name)
    zip_file.write(file_path, arcname=archive_path)
    zip_file.close()


if __name__ == '__main__':
    folder_path = os.path.join(os.path.dirname(__file__), 'kkk')
    compressed_file(folder_path, 'kkk', 'kkk-1.xml')
  1. 构造压缩文件名
  2. 创建一个 ZipFile 对象,用于写入压缩文件。指定压缩算法为 ZIP_DEFLATED
  3. 构造文件路径
  4. 构造在压缩文件中的存档路径( 压缩文件里的结构
  5. 使用 write 方法将 XML 文件添加到压缩文件中
  6. 关闭 ZipFile 对象,完成压缩操作。

5、解压缩

5.1 通过socket接收的字节流

import zipfile

with zipfile.ZipFile(io.BytesIO(bytes(content)), 'r') as zip_file:
    zip_file.extractall('test')
  1. 解压缩到test文件夹
  2. io.BytesIO(bytes(content)):用过socket接收到的文件字节流

5.2 指定压缩文件

import zipfile

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

发表评论

评论列表,共 0 条评论

    暂无评论