Python解压当天创建的ZIP文件到指定的文件夹中
1. 首先,导入了需要使用的模块:
- `zipfile`:用于处理ZIP文件的模块。
- `os`:提供了与操作系统交互的功能。
- `shutil`:用于高级文件操作,例如移动文件等。
- `datetime`:用于处理日期和时间的模块。
2. 定义了一个函数 `unzip_todays_files(zip_files_folder, extract_folder)`,该函数接受两个参数:
- `zip_files_folder`:包含ZIP文件的文件夹路径。
- `extract_folder`:解压缩目标文件夹的路径。
3. 获取当前日期:
1 | 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文件是否是当天创建的:
create_date = datetime.datetime.fromtimestamp(os.path.getctime(zip_file_path)).date() if create_date == today: ...
使用 `os.path.getctime(zip_file_path)` 获取文件的创建时间,然后将其转换为日期。接着,将其与当前日期进行比较,以确定文件是否是当天创建的。
6. 解压缩ZIP文件:
1 2 | 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)` 创建目标文件夹,如果目标文件夹不存在的话。
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文件的创建日期 create_date = datetime.datetime.fromtimestamp(os.path.getctime(zip_file_path)).date() # 检查ZIP文件是否是当天创建的 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:\\工作内容\\我的数据\\商品费用解析数据' # 已经存在的目录 extract_folder2 = 'F:\\工作内容\\我的数据\\订单列表数据' # 调用函数解压缩当天创建的文件 unzip_todays_files(zip_files_folder, extract_folder)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
2022-03-22 Tableau 绘制圆环图