Python實(shí)現(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)前日期進(jìn)行比較,以確定文件是否是當(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 # 默認(rèn)存儲到解壓目標(biāo)文件夾根據(jù)文件名中的特定信息,判斷應(yīng)該將文件解壓到哪個目標(biāo)文件夾。如果文件名中包含 `'YYFX'`,則將文件解壓到 `extract_folder2`;如果文件名中包含其他特定信息,則將文件解壓到另一個目標(biāo)文件夾;否則,默認(rèn)將文件解壓到 `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 # 默認(rèn)存儲到解壓目標(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ù)\\商品費(fèi)用解析數(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實(shí)現(xiàn)解壓當(dāng)天創(chuàng)建的ZIP文件到指定文件夾中的詳細(xì)內(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模塊的一些常用功能,并通過實(shí)例代碼詳細(xì)講解每個知識點(diǎn)2023-06-06
Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法的分類
今天給大家整理了Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法的分類的文章,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
Python?ttkbootstrap?制作賬戶注冊信息界面的案例代碼
ttkbootstrap 是一個基于 tkinter 的界面美化庫,使用這個工具可以開發(fā)出類似前端 bootstrap 風(fēng)格的 tkinter 桌面程序。本文重點(diǎn)給大家介紹Python?ttkbootstrap?制作賬戶注冊信息界面的案例代碼,感興趣的朋友一起看看吧2022-02-02
Python unittest 簡單實(shí)現(xiàn)參數(shù)化的方法
今天小編就為大家分享一篇Python unittest 簡單實(shí)現(xiàn)參數(shù)化的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python筆記之Scipy.stats.norm函數(shù)使用解析
這篇文章主要介紹了Python筆記之Scipy.stats.norm函數(shù)使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02

