办公自动化-快速搜查指定路径指定文件,创建复制到新文件夹
Python办公自动化之文件处理(一)
重复性的查询和复制粘贴操作总是让人感到枯燥,为了解放双手,Python自动化办公成为办公室职员的优选。
从前
需求总是千奇百怪,有时需要汇总,有时需要分开,有时需要筛选删减,有时要条目明晰,导致许多资料文件要根据需求进行重组排列,操作不难甚至可以说白痴,但自己动手做浪费时间不说,还十分无聊:
- 重复性的文件操作
- 人肉筛选带来的繁琐流程
- 事情简单没有成就感
- 时间浪费没有有用的东西
现在
- 一键式操作,迅猛快捷
- 机器操作,流程简便、解放人力
- 钻研的过程充满乐趣
- 学习Python技术变得更加充实美好
- (谁能拒绝摸鱼呢☺)
这是我的代码
(注:请因时制宜,根据自己本身的需求替换路径和筛选自己需要的文件)
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("任务完成")