1. 程式人生 > 其它 >Python碎片化學習教程 @9. 將指定路徑下的所有檔案和資料夾壓縮為.zip格式

Python碎片化學習教程 @9. 將指定路徑下的所有檔案和資料夾壓縮為.zip格式

技術標籤:Python碎片化學習教程python

程式碼功能:將指定路徑下的所有檔案和資料夾壓縮為.zip格式。


程式碼如下:

import os  # 匯入負責處理作業系統相關事務的OS模組
import zipfile  # 匯入與zip壓縮檔案操作相關的zipfile模組

tar_folder = "D:\\666"  # 指定壓縮路徑
output_file = "D:\\壓縮.zip"  # 指定輸出的壓縮檔名和路徑

if not os.path.exists(tar_folder):  # 指定壓縮路徑不存在的情況下
    print
("指定壓縮路徑不存在,請重新指定路徑!") # 列印提示資訊 else: # 指定壓縮路徑存在的情況下 for path, folders, files in os.walk(tar_folder): # 遍歷指定壓縮路徑,獲得其目錄結構 if len(os.listdir(tar_folder)) == 0: # 指定壓縮路徑內容為空的情況下 print("目標壓縮路徑為空,請檢查一下!") # 列印提示資訊 else: # 指定壓縮路徑內容非空的情況下 zip_file =
zipfile.ZipFile(output_file, "w", zipfile.ZIP_DEFLATED) # 建立一個.zip檔案 new_path = path.replace(tar_folder, '') # 將指定壓縮路徑替換為空,以得到其內部檔案和資料夾的相對路徑 for filename in files: # 遍歷某一層級資料夾內所有檔案 zip_file.write(os.path.join(path, filename), os.path.join(new_path,
filename)) # 向壓縮檔案內新增檔案 for folder in folders: # 遍歷某一層級資料夾內所有子資料夾 if len(os.listdir(os.path.join(path, folder))) == 0: # 子資料夾為空的情況下 zip_file.write(os.path.join(path, folder), os.path.join(new_path, folder)) # 向壓縮檔案內新增空資料夾 zip_file.close() # 對目標.zip檔案操作完畢,關閉操作物件 """ # 程式碼功能:將指定路徑下的所有檔案和資料夾壓縮為.zip格式 # 注: 1. 執行到第14行程式碼就會在目標路徑建立一個.zip檔案,只不過為空。內容是用.write()方法新增進去的。 2. 第14行程式碼引數w代表寫入,而且是以覆蓋的形式寫入。這個引數有三個選項,r、w、a,r代表讀取,w代表覆蓋式寫入, a代表追加式寫入。如果將此引數設為w,則輸出的壓縮檔案存在同名檔案的情況下會被覆蓋。如果將此引數設為a,則 輸出的壓縮檔案存在同名檔案的情況下,會在原檔案的情況下追加寫入。 3. 第16、17行程式碼的作用是將檔案和非空資料夾新增進壓縮檔案,第18、19、20行程式碼的作用是將空資料夾新增進壓縮檔案。 # 作業系統環境:Win10 1909 # Python環境:Python3.8.6 """

以上就是本期的所有內容了,謝謝觀看。
關於工作室聯絡方式、進群討論、技術支援、轉載、商業合作等問題請見本套教程第一期,教程簡介。
謝謝支援,謝謝!


本套教程使用的Python編輯器均為Pycharm。
資料包中附帶 Python3.8.6 及本期涉及的其他標準庫虛擬環境, 可用之執行本期程式碼。


注:資料包包括本期內容文件、程式碼、Python3.8.6幫助文件。


本期資料包下載:
  百度網盤:連結:https://pan.baidu.com/s/12Z_fUfUKRW41a17DjTo-8A
      提取碼:od7l