Python實現(xiàn)解壓當天創(chuàng)建的ZIP文件到指定文件夾中
1. 首先,導入了需要使用的模塊:
- `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`:解壓縮目標文件夾的路徑。
3. 獲取當前日期
today = datetime.datetime.now().date()
這里使用 `datetime.datetime.now().date()` 獲取當前日期。
4. 遍歷指定文件夾中的所有ZIP文件:
for file_name in os.listdir(zip_files_folder):
if file_name.endswith('.zip'):
...使用 `os.listdir(zip_files_folder)` 獲取指定文件夾中的所有文件名,然后檢查文件名是否以 `.zip` 結尾,以過濾出ZIP文件。
5. 檢查ZIP文件是否是當天創(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)建時間,然后將其轉換為日期。接著,將其與當前日期進行比較,以確定文件是否是當天創(chuàng)建的。
6. 解壓縮ZIP文件:
with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:
...使用 `zipfile.ZipFile` 打開ZIP文件,并指定為只讀模式。使用 `with` 上下文管理器確保在退出上下文時關閉文件。
7. 獲取解壓后的文件列表:
extracted_files = zip_ref.namelist()
使用 `zip_ref.namelist()` 獲取ZIP文件中的所有文件名列表。
8. 根據文件名中的特定信息判斷存儲目錄:
for extracted_file in extracted_files:
if 'YYFX' in extracted_file:
target_folder = extract_folder2
elif '其他特定信息' in extracted_file:
target_folder = '目標文件夾路徑2'
else:
target_folder = extract_folder # 默認存儲到解壓目標文件夾根據文件名中的特定信息,判斷應該將文件解壓到哪個目標文件夾。如果文件名中包含 `'YYFX'`,則將文件解壓到 `extract_folder2`;如果文件名中包含其他特定信息,則將文件解壓到另一個目標文件夾;否則,默認將文件解壓到 `extract_folder`。
9. 確保目標文件夾存在:
os.makedirs(target_folder, exist_ok=True)
使用 `os.makedirs(target_folder, exist_ok=True)` 創(chuàng)建目標文件夾,如果目標文件夾不存在的話。
10. 解壓文件到目標文件夾:
zip_ref.extract(extracted_file, target_folder)
使用 `zip_ref.extract(extracted_file, target_folder)` 將文件解壓到目標文件夾中。
11. 打印解壓信息:
print(f"已解壓文件: {extracted_file} 到目標文件夾: {target_folder}")打印已解壓的文件名和目標文件夾路徑。
完整代碼
import zipfile
import os
import shutil
import datetime
def unzip_todays_files(zip_files_folder, extract_folder):
# 獲取當前日期
today = datetime.datetime.now().date()
# 遍歷指定文件夾中的所有ZIP文件
for file_name in os.listdir(zip_files_folder):
if file_name.endswith('.zip'):
# 構建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文件是否是當天創(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()
# 根據文件名中的特定信息判斷應該存儲到哪個文件夾
for extracted_file in extracted_files:
# 根據文件名中的特定信息判斷存儲目錄
if 'YYFX' in extracted_file:
target_folder = extract_folder2
elif '其他特定信息' in extracted_file:
target_folder = '目標文件夾路徑2'
else:
target_folder = extract_folder # 默認存儲到解壓目標文件夾
# 確保目標文件夾存在
os.makedirs(target_folder, exist_ok=True)
# 解壓文件到目標文件夾
zip_ref.extract(extracted_file, target_folder)
print(f"已解壓文件: {extracted_file} 到目標文件夾: {target_folder}")
# 指定包含ZIP文件的文件夾路徑和解壓縮目標文件夾路徑
zip_files_folder = 'C:\\Users\\Administrator\\Downloads' # 包含ZIP文件的文件夾
extract_folder = 'F:\\工作內容\\我的數(shù)據\\商品費用解析數(shù)據' # 已經存在的目錄
extract_folder2 = 'F:\\工作內容\\我的數(shù)據\\訂單列表數(shù)據'
# 調用函數(shù)解壓縮當天創(chuàng)建的文件
unzip_todays_files(zip_files_folder, extract_folder)以上就是Python實現(xiàn)解壓當天創(chuàng)建的ZIP文件到指定文件夾中的詳細內容,更多關于Python解壓ZIP到指定文件夾的資料請關注腳本之家其它相關文章!
相關文章
解決python執(zhí)行較大excel文件openpyxl慢問題
這篇文章主要介紹了解決python執(zhí)行較大excel文件openpyxl慢問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Django數(shù)據庫(SQlite)基本入門使用教程
django有默認自帶的數(shù)據庫,當然也可以用其他的數(shù)據庫,下面這篇文章主要給大家介紹了關于Django數(shù)據庫(SQlite)基本入門使用教程的相關資料,需要的朋友可以參考下2022-07-07
python numpy 部分排序 尋找最大的前幾個數(shù)的方法
今天小編就為大家分享一篇python numpy 部分排序 尋找最大的前幾個數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Jupyter notebook之如何快速打開ipynb文件
這篇文章主要介紹了Jupyter notebook之如何快速打開ipynb文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Python解決%matplotlib inline標紅底報錯問題
在使用非Jupyter環(huán)境如Spyder或PyCharm時,%matplotlib inline會因為是Jupyter特有的魔法命令而導致報錯,這條命令是用于Jupyter Notebook或Jupyter Qt Console中,主要作用是將matplotlib的圖表直接嵌入到Notebook中顯示2024-09-09

