Python办公自动化之文件处理(一)

办公自动化-快速搜查指定路径指定文件,创建复制到新文件夹

Python办公自动化之文件处理(一)

重复性的查询和复制粘贴操作总是让人感到枯燥,为了解放双手,Python自动化办公成为办公室职员的优选。

从前

需求总是千奇百怪,有时需要汇总,有时需要分开,有时需要筛选删减,有时要条目明晰,导致许多资料文件要根据需求进行重组排列,操作不难甚至可以说白痴,但自己动手做浪费时间不说,还十分无聊:

  1. 重复性的文件操作
  2. 人肉筛选带来的繁琐流程
  3. 事情简单没有成就感
  4. 时间浪费没有有用的东西

现在

  1. 一键式操作,迅猛快捷
  2. 机器操作,流程简便、解放人力
  3. 钻研的过程充满乐趣
  4. 学习Python技术变得更加充实美好
  5. (谁能拒绝摸鱼呢☺)

这是我的代码

(注:请因时制宜,根据自己本身的需求替换路径和筛选自己需要的文件)

import os
import shutil

# 定义源文件夹A和目标文件夹B的路径
folder_A_path = "D:\\MyWork\\2023年16所新装的学校\\2023 新增16所学校资料档案"
folder_B_path = (
    "D:\\MyWork\\学校材料整理\\整理参考材料\\2023年整理材料资源\\pdf & jpg\\(汇总)硬件类学校所需\\硬件新增13所学校合同"
)

# 获取A文件夹下的子文件夹列表
# os.listdir(path='.'): 返回指定目录中的文件和子目录列表。
# os.path.isdir(path) 是 os 模块中用于判断指定路径是否为目录的函数
subfolders_A = [
    f
    for f in os.listdir(folder_A_path)
    if os.path.isdir(os.path.join(folder_A_path, f))
]

# 遍历A文件夹下的每个子文件夹
for subfolder_A in subfolders_A:
    # 构建源文件夹A中的子文件夹路径
    subfolder_A_path = os.path.join(folder_A_path, subfolder_A)

    # 构建目标文件夹B中的子文件夹路径
    subfolder_B_path = os.path.join(folder_B_path, subfolder_A)

    # 在目标文件夹B中创建子文件夹
    os.makedirs(subfolder_B_path, exist_ok=True)

    # 构建源文件夹A中的“发票需要相关”文件夹路径
    invoice_folder_A_path = None

    # 寻找以“发票需要相关”结尾的文件夹
    for root, dirs, files in os.walk(subfolder_A_path):
        for folder in dirs:
            if folder.endswith("合同签订及执行相关"):
                invoice_folder_A_path = os.path.join(root, folder)
                break

    # 如果找到了对应的文件夹
    if invoice_folder_A_path:
        # 获取“发票需要相关”文件夹中以29805结尾或29805元结尾和以86995结尾或以86995元结尾的pdf文件列表
        pdf_files = [
            f for f in os.listdir(invoice_folder_A_path) if f.endswith(("(已盖章).pdf"))
        ]

        # 将pdf文件复制到目标文件夹B的相应子文件夹中
        for pdf_file in pdf_files:
            source_path = os.path.join(invoice_folder_A_path, pdf_file)
            target_path = os.path.join(subfolder_B_path, pdf_file)
            shutil.copy(source_path, target_path)

print("任务完成")

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值