Python解压当天创建的ZIP文件到指定的文件夹中

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)
相关推荐
databook7 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar8 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780518 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_8 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机15 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机16 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机16 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机16 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i16 小时前
drf初步梳理
python·django
每日AI新事件16 小时前
python的异步函数
python