1. 首先,导入了需要使用的模块:

- `zipfile`:用于处理ZIP文件的模块。
- `os`:提供了与操作系统交互的功能。
- `shutil`:用于高级文件操作,例如移动文件等。
- `datetime`:用于处理日期和时间的模块。

2. 定义了一个函数 `unzip_todays_files(zip_files_folder, extract_folder)`,该函数接受两个参数:

- `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文件是否是当天创建的:

create_date = datetime.datetime.fromtimestamp(os.path.getctime(zip_file_path)).date()
if create_date == today:
...

使用 `os.path.getctime(zip_file_path)` 获取文件的创建时间,然后将其转换为日期。接着,将其与当前日期进行比较,以确定文件是否是当天创建的。

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)` 创建目标文件夹,如果目标文件夹不存在的话。

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)

Python解压当天创建的ZIP文件到指定的文件夹中的更多相关文章

  1. python 解压、复制、删除 文件

    一.python3解压文件 1.python 解压文件代码示例 如下代码主要实现zip.rar.tar.tar.gz四种格式的压缩文件的解压 def unzip_file(src_file, dst_ ...

  2. 解压上传的zip文件流和文件

    /** * 解压上传的zip文件流 * @param stream * @param outputDirectory */ public static String unzip(InputStream ...

  3. python 解压 压缩包

    转 http://m.blog.csdn.net/blog/wice110956/26597179# 这里讨论使用Python解压如下五种压缩文件: .gz .tar  .tgz .zip .rar ...

  4. python解压压缩包的几种方法

    这里讨论使用Python解压例如以下五种压缩文件: .gz .tar  .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. ...

  5. python解压压缩包的几种方式

    这里讨论使用Python解压如下五种压缩文件: .gz .tar  .tgz .zip .rar 简介 gz: 即gzip,通常只能压缩一个文件.与tar结合起来就可以实现先打包,再压缩. tar: ...

  6. activiti7从act_ge_bytearray表中查询资源文件并保存到桌面文件夹中

    package com.zcc.activiti02; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proc ...

  7. 使用Python解压zip、rar文件

    解压 zip 文件 基本解压操作 import zipfile ''' 基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]]) ...

  8. jdk--rpm.bin文件安装, zip解压与创建

    3,执行命令赋予安装文件777权限: # cd /usr/java(mkdir java –此目录需要创建) ①jdk-1_5_0_16-linux-i586-rpm.bin文件安装 # chmod ...

  9. Python解压ZIP、RAR等常用压缩格式的方法

    解压大杀器 首先祭出可以应对多种压缩包格式的python库:patool.如果平时只用基本的解压.打包等操作,也不想详细了解各种压缩格式对应的python库,patool应该是个不错的选择. pato ...

  10. 【转】JAVA解压.TAR.Z及.ZIP文件

     解压.ZIP文件 package app.qdupr.Method; import java.io.File; import java.io.FileOutputStream; import jav ...

随机推荐

  1. layui弹出层:使用icon图标小结

    转自:https://www.cnblogs.com/webSnow/p/15470350.html layui弹出层:使用icon图标小结 Layui 踩坑篇layui的弹框插件layer中,有很多 ...

  2. 遍历用for还是foreach?

    遍历用for还是foreach?这篇文章帮你轻松选择! 在编程的世界里,我们经常需要对数据进行循环处理,常用的两种方法就是:for循环和foreach循环.想象你站在一条装满宝贝的传送带前,你要亲手检 ...

  3. Centos8 单机配置 Zookeeper3.6.3 集群

    安装 Zookeeper 3.6.3 前提 已经安装好 JDK8+. 如果使用JDK8, 版本需要在211以上. 下载, 解压 使用root用户 wget https://downloads.apac ...

  4. 用STM32F401和nRF24L01制作无线调速小车

    硬件配置 在做这个小项目前, 考察过STM32F103C8T6, STM32F401CCU6和STC89C52这三个MCU, 并实际跑了一些用例 STC89C52在代码上要简单得多, 它的问题是没有A ...

  5. 利用javax.validation实现对bean属性校验

    1.使用场景介绍 controller层对传入的bean的属性进行非空.属性长度等合法性的校验. 传统的方式是我们要自己写if-else-去判断,比较麻烦. 2.实现效果 3.代码介绍 代码结构: p ...

  6. Direct2D 画刷篇

    微软文档:Brushes overview 本篇通过官方文档学习,整理出来的demo,初始样本请先创建一个普通的desktop app. // Test_Direct2D_Brush.cpp : De ...

  7. win32 - 对于32位的应用程序,LoadResource为什么不需要释放资源

    原话: [此功能已过时,仅支持与16位Windows向后兼容.对于32位Windows应用程序,不必释放使用LoadResource加载的资源.如果在32或64位Windows系统上使用,此函数将返回 ...

  8. Redis原理学习:Redis主体流程分析

    转自:七把刀 https://www.jianshu.com/p/427cf97d7951 网上分析Redis源码的文章挺多,如黄健宏的<Redis设计与实现>就很详尽的分析了redis源 ...

  9. 【Android 逆向】【ARM汇编】 arm64部分知识

    arm64寄存器更多 X0-X30 SP CPSR PC 64位 W0-W30 32位 PC寄存器的值禁止修改 参数放在 X0-X7/W0-W7 结果放在 X0 函数返回 RET 相当于 bl lr ...

  10. 删除node_modules文件夹cmd指令 - 20201015

    方法 方法一: rm -rf /node_modules cmd原生命令.只要支持cmd就可以使用. 方法二: rmdir /s/q your_app_dir 原生node方法,redir为node删 ...