Python實現(xiàn)解壓當(dāng)天創(chuàng)建的ZIP文件到指定文件夾中
1. 首先,導(dǎo)入了需要使用的模塊:
- `zipfile`:用于處理ZIP文件的模塊。
- `os`:提供了與操作系統(tǒng)交互的功能。
- `shutil`:用于高級文件操作,例如移動文件等。
- `datetime`:用于處理日期和時間的模塊。
2. 定義了一個函數(shù) `unzip_todays_files(zip_files_folder, extract_folder)`,該函數(shù)接受兩個參數(shù):
- `zip_files_folder`:包含ZIP文件的文件夾路徑。- `extract_folder`:解壓縮目標(biāo)文件夾的路徑。
3. 獲取當(dāng)前日期
today = datetime.datetime.now().date()
這里使用 `datetime.datetime.now().date()` 獲取當(dāng)前日期。
4. 遍歷指定文件夾中的所有ZIP文件:
for file_name in os.listdir(zip_files_folder): if file_name.endswith('.zip'): ...
使用 `os.listdir(zip_files_folder)` 獲取指定文件夾中的所有文件名,然后檢查文件名是否以 `.zip` 結(jié)尾,以過濾出ZIP文件。
5. 檢查ZIP文件是否是當(dāng)天創(chuàng)建的
create_date = datetime.datetime.fromtimestamp(os.path.getctime(zip_file_path)).date() if create_date == today: ...
使用 `os.path.getctime(zip_file_path)` 獲取文件的創(chuàng)建時間,然后將其轉(zhuǎn)換為日期。接著,將其與當(dāng)前日期進行比較,以確定文件是否是當(dāng)天創(chuàng)建的。
6. 解壓縮ZIP文件:
with zipfile.ZipFile(zip_file_path, 'r') as zip_ref: ...
使用 `zipfile.ZipFile` 打開ZIP文件,并指定為只讀模式。使用 `with` 上下文管理器確保在退出上下文時關(guān)閉文件。
7. 獲取解壓后的文件列表:
extracted_files = zip_ref.namelist()
使用 `zip_ref.namelist()` 獲取ZIP文件中的所有文件名列表。
8. 根據(jù)文件名中的特定信息判斷存儲目錄:
for extracted_file in extracted_files: if 'YYFX' in extracted_file: target_folder = extract_folder2 elif '其他特定信息' in extracted_file: target_folder = '目標(biāo)文件夾路徑2' else: target_folder = extract_folder # 默認存儲到解壓目標(biāo)文件夾
根據(jù)文件名中的特定信息,判斷應(yīng)該將文件解壓到哪個目標(biāo)文件夾。如果文件名中包含 `'YYFX'`,則將文件解壓到 `extract_folder2`;如果文件名中包含其他特定信息,則將文件解壓到另一個目標(biāo)文件夾;否則,默認將文件解壓到 `extract_folder`。
9. 確保目標(biāo)文件夾存在:
os.makedirs(target_folder, exist_ok=True)
使用 `os.makedirs(target_folder, exist_ok=True)` 創(chuàng)建目標(biāo)文件夾,如果目標(biāo)文件夾不存在的話。
10. 解壓文件到目標(biāo)文件夾:
zip_ref.extract(extracted_file, target_folder)
使用 `zip_ref.extract(extracted_file, target_folder)` 將文件解壓到目標(biāo)文件夾中。
11. 打印解壓信息:
print(f"已解壓文件: {extracted_file} 到目標(biāo)文件夾: {target_folder}")
打印已解壓的文件名和目標(biāo)文件夾路徑。
完整代碼
import zipfile import os import shutil import datetime def unzip_todays_files(zip_files_folder, extract_folder): # 獲取當(dāng)前日期 today = datetime.datetime.now().date() # 遍歷指定文件夾中的所有ZIP文件 for file_name in os.listdir(zip_files_folder): if file_name.endswith('.zip'): # 構(gòu)建ZIP文件的完整路徑 zip_file_path = os.path.join(zip_files_folder, file_name) # 獲取ZIP文件的創(chuàng)建日期 create_date = datetime.datetime.fromtimestamp(os.path.getctime(zip_file_path)).date() # 檢查ZIP文件是否是當(dāng)天創(chuàng)建的 if create_date == today: print(f"正在解壓文件: {zip_file_path}") # 打開ZIP文件 with zipfile.ZipFile(zip_file_path, 'r') as zip_ref: # 獲取解壓后的文件列表 extracted_files = zip_ref.namelist() # 根據(jù)文件名中的特定信息判斷應(yīng)該存儲到哪個文件夾 for extracted_file in extracted_files: # 根據(jù)文件名中的特定信息判斷存儲目錄 if 'YYFX' in extracted_file: target_folder = extract_folder2 elif '其他特定信息' in extracted_file: target_folder = '目標(biāo)文件夾路徑2' else: target_folder = extract_folder # 默認存儲到解壓目標(biāo)文件夾 # 確保目標(biāo)文件夾存在 os.makedirs(target_folder, exist_ok=True) # 解壓文件到目標(biāo)文件夾 zip_ref.extract(extracted_file, target_folder) print(f"已解壓文件: {extracted_file} 到目標(biāo)文件夾: {target_folder}") # 指定包含ZIP文件的文件夾路徑和解壓縮目標(biāo)文件夾路徑 zip_files_folder = 'C:\\Users\\Administrator\\Downloads' # 包含ZIP文件的文件夾 extract_folder = 'F:\\工作內(nèi)容\\我的數(shù)據(jù)\\商品費用解析數(shù)據(jù)' # 已經(jīng)存在的目錄 extract_folder2 = 'F:\\工作內(nèi)容\\我的數(shù)據(jù)\\訂單列表數(shù)據(jù)' # 調(diào)用函數(shù)解壓縮當(dāng)天創(chuàng)建的文件 unzip_todays_files(zip_files_folder, extract_folder)
以上就是Python實現(xiàn)解壓當(dāng)天創(chuàng)建的ZIP文件到指定文件夾中的詳細內(nèi)容,更多關(guān)于Python解壓ZIP到指定文件夾的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python使用OS模塊操作系統(tǒng)接口及常用功能詳解
os是?Python?標(biāo)準(zhǔn)庫中的一個模塊,提供了與操作系統(tǒng)交互的功能,在本節(jié)中,我們將介紹os模塊的一些常用功能,并通過實例代碼詳細講解每個知識點2023-06-06Python實現(xiàn)機器學(xué)習(xí)算法的分類
今天給大家整理了Python實現(xiàn)機器學(xué)習(xí)算法的分類的文章,文中有非常詳細的代碼示例,對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06Python?ttkbootstrap?制作賬戶注冊信息界面的案例代碼
ttkbootstrap 是一個基于 tkinter 的界面美化庫,使用這個工具可以開發(fā)出類似前端 bootstrap 風(fēng)格的 tkinter 桌面程序。本文重點給大家介紹Python?ttkbootstrap?制作賬戶注冊信息界面的案例代碼,感興趣的朋友一起看看吧2022-02-02Python unittest 簡單實現(xiàn)參數(shù)化的方法
今天小編就為大家分享一篇Python unittest 簡單實現(xiàn)參數(shù)化的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python筆記之Scipy.stats.norm函數(shù)使用解析
這篇文章主要介紹了Python筆記之Scipy.stats.norm函數(shù)使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02