zipfile本身是上下文管理器, 可以使用with。以下为自己简单写的Demo。
为了兼容传入文件路径,引入"os"库,来实现指定路径的打包与解压。
import os
import zipfile
src = "\\item-py\\docx\\133-docx-file" # # 指定要打包的目录路径
dst = "\\item-py\\docx\\133-docx.zip" # #指定打包后的zip文件名及路径
# # 打包函数
def zip_dir(src, dst):
with zipfile.ZipFile(dst, 'w', zipfile.ZIP_DEFLATED) as zip_f:
for root, dirs, files in os.walk(src):
for file in files:
file_path = os.path.join(root, file)
zip_f.write(file_path, arcname=os.path.relpath(file_path, src))
# # 打包
zip_dir(src, dst)
# # 解压函数
def extract_zip_file(zip_file, dest_dir):
with zipfile.ZipFile(zip_file, 'r') as zf:
zf.extractall(dest_dir) # 使用函数
zip_path = "\\item-py\\docx\\133-docx.zip" # # 指定要解压的文件
path = "\\item-py\\docx\\133-docx-file" # # 指定解压后的zip文件名及路径
# # 解压
extract_zip_file(zip_path, path)