Python碎片化學習教程 @9. 將指定路徑下的所有檔案和資料夾壓縮為.zip格式
阿新 • • 發佈:2021-02-14
技術標籤: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