我写的程序都是用于很鸡肋的工作场景
此次的工作场景是领导给了我一个工作让我批量替换下载的标准照片为高清的照片
我下载的标准照片目录为path_A
高清照片的目录为path_B
我将匹配后的文件根据path_A的文件格式放置于path_C
[Python] 纯文本查看 复制代码
#path_A是原图片文件目录,path_A下面可以有多个文件夹内保存图片
#path_B是原图片文件目录,path_B下面没有子目录,内都是图片
#path_C是一个新建的父级目录,子目录会复制path_A内容
#目录填写完成后,path_A会与path_B目录内的所有图片进行匹配
#如果有相同的会将path_B内的图片复制一份放置与s内(放置位置与path_A位置相同)
#如果有不同的会将path_A内的图片复制一份放置与s内(放置位置与path_A位置相同)
import os
import shutil
# 设定文件夹A、B和C的路径
path_A = '教师1' # 请替换为文件夹A的实际路径
path_B = 'C:\\Users\\23728\\Documents\\WXWork\\1688854541319096\\Cache\\File\\2024-04\\原始照片(灰底)' # 请替换为文件夹B的实际路径
path_C = 's' # 请替换为文件夹C的实际路径
# 确保文件夹C存在
if not os.path.exists(path_C):
os.makedirs(path_C)
# 遍历文件夹A
for root, dirs, files in os.walk(path_A):
# 创建文件夹C中对应的子文件夹结构
relative_path = os.path.relpath(root, path_A)
target_path = os.path.join(path_C, relative_path)
if not os.path.exists(target_path):
os.makedirs(target_path)
# 复制文件
for file in files:
# 获取文件名(无路径和扩展名)
file_id = os.path.splitext(file)[0]
# 构建文件A和文件B的完整路径
full_path_A = os.path.join(root, file)
full_path_B = os.path.join(path_B, file)
full_path_C = os.path.join(target_path, file)
# 检查文件B是否存在
if os.path.exists(full_path_B):
# 文件B存在,复制文件B到文件夹C
shutil.copy2(full_path_B, full_path_C)
else:
# 文件B不存在,复制文件A到文件夹C
shutil.copy2(full_path_A, full_path_C)
print("文件复制完成。")
|