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)前日期進(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ù)\\商品費用解析數(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文件到指定文件夾中的詳細(xì)內(nèi)容,更多關(guān)于Python解壓ZIP到指定文件夾的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決python執(zhí)行較大excel文件openpyxl慢問題
這篇文章主要介紹了解決python執(zhí)行較大excel文件openpyxl慢問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Django數(shù)據(jù)庫(SQlite)基本入門使用教程
django有默認(rèn)自帶的數(shù)據(jù)庫,當(dāng)然也可以用其他的數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Django數(shù)據(jù)庫(SQlite)基本入門使用教程的相關(guān)資料,需要的朋友可以參考下2022-07-07
python numpy 部分排序 尋找最大的前幾個數(shù)的方法
今天小編就為大家分享一篇python numpy 部分排序 尋找最大的前幾個數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python PDF識別之文本內(nèi)容與表格提取方法總結(jié)
這篇文章主要帶大家深入探討多種PDF文本與表格提取方法,結(jié)合實際代碼示例,為大家呈現(xiàn)一份全面的PDF提取指南,希望對大家有所幫助2025-08-08
python教程之用py2exe將PY文件轉(zhuǎn)成EXE文件
py2exe是一個將python腳本轉(zhuǎn)換成windows上的可獨立執(zhí)行的可執(zhí)行程序(*.exe)的工具,這樣,你就可以不用裝python而在windows系統(tǒng)上運行這個可執(zhí)行程序。2014-06-06
Jupyter notebook之如何快速打開ipynb文件
這篇文章主要介紹了Jupyter notebook之如何快速打開ipynb文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Python解決%matplotlib inline標(biāo)紅底報錯問題
在使用非Jupyter環(huán)境如Spyder或PyCharm時,%matplotlib inline會因為是Jupyter特有的魔法命令而導(dǎo)致報錯,這條命令是用于Jupyter Notebook或Jupyter Qt Console中,主要作用是將matplotlib的圖表直接嵌入到Notebook中顯示2024-09-09

