zipfile模塊
ZIP 文件格式是一個常用的歸檔與壓縮標准。 這個模塊提供了創建、讀取、寫入、添加及列出 ZIP 文件的工具。
它可以處理使用 ZIP64 擴展(超過 4 GB 的 ZIP 文件)的 ZIP 文件。它支持解密 ZIP 歸檔中的加密文件,但是目前不能創建一個加密的文件。解密非常慢,因為它是使用原生 Python 而不是 C 實現的。
摘自:python官網
壓縮文件夾
import os, os.path
import zipfile
# now_path獲取當前工作目錄
now_path = os.getcwd()
# 定義zip_dir函數(dirname: 目錄, zipfilename:zip文件名)
def zip_dir(dirname, zipfilename):
# filelist列表用來存放文件的絕對路徑
filelist = []
if os.path.isfile(dirname):
filelist.append(dirname)
else:
for root, dirs, files in os.walk(dirname):
for name in files:
filelist.append(os.path.join(root, name))
zf = zipfile.ZipFile(zipfilename, "w", zipfile.zlib.DEFLATED)
for full_name in filelist:
# file_name 獲取文件名
file_name = full_name[len(dirname):]
# 添加full_name 文件到壓縮包
zf.write(full_name)
zf.close()
# 調用了close方法才會保證完成壓縮
更新
2020/1/20:精簡代碼,以下代碼也能實現文件夾的打包功能
def make_zip(source_dir, output_file):
zf = zipfile.ZipFile(output_file, "w", zipfile.zlib.DEFLATED)
for file in os.listdir(source_dir):
filepath = os.path.join(source_dir, file)
zf.write(filepath, file) # 避免出現多層級的文件
zf.close()
OVER
有錯誤的地方請指出