python zipfile壓縮使用說明


壓縮

f=zipfile.ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False)

創建一個zip文件對象,壓縮是需要把mode改為‘w’,這個是源碼中的注釋Open the ZIP file with mode read "r", write "w" or append "a",a為追加壓縮,不會清空原來的zip

f.write(filename)

將文件寫入zip文件中,即將文件壓縮

f.close()

將zip文件對象關閉,與open一樣可以使用上下文with as

write有2個可選參數:zipfile.write('原文件名',‘壓縮后的文件名') #第一個是必填,第二個選填

下面放個小demo

import zipfile
import os
 
def zipDir(dirpath,outFullName,name):
    """
    壓縮指定文件夾
    :param dirpath: 目標文件夾路徑
    :param outFullName: 壓縮文件保存路徑+xxxx.zip
    :return: 無
    """
    zip = zipfile.ZipFile(outFullName,"a",zipfile.ZIP_DEFLATED)
    for path,dirnames,filenames in os.walk(dirpath):
        # 去掉目標跟路徑,只對目標文件夾下邊的文件及文件夾進行壓縮
        fpath = path.replace(dirpath,'')
 
        for filename in filenames:
            zip.write(os.path.join(path,filename),os.path.join(name+fpath,filename))
    zip.close()

壓縮整個文件夾:

      zipfile模塊對“文件夾”的壓縮其實是由壓縮文件的目錄結構實現的,因此可以使用os模塊的walk方法進行文件遍歷、寫入壓縮文件。

import zipfile,os
 
with zipfile.ZipFile('aa.zip','w') as target:
    for i in os.walk('aa'):
        for n in i[2]:
            target.write(''.join((i[0],'\\',n))) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM