当前位置: 首页 > news >正文

python(68) : 提前文件夹所有图片, 重名处理

import os import shutil from pathlib import Path # 源目录和目标目录 SOURCE_DIR = r"E:\工作台\87_牧原POC\豆包安装包" TARGET_DIR = r"E:\工作台\87_牧原POC\豆包素材" # 支持的图片格式 IMAGE_EXTENSIONS = {'.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp', '.svg', '.ico', '.tiff', '.tif'} def get_unique_filename(target_path): """如果文件存在,在文件名后面添加 _n""" path = Path(target_path) if not path.exists(): return target_path base = path.stem ext = path.suffix parent = path.parent counter = 1 while True: new_name = f"{base}_{counter}{ext}" new_path = parent / new_name if not new_path.exists(): return str(new_path) counter += 1 def copy_images_recursive(): """递归复制所有图片文件""" source_path = Path(SOURCE_DIR) target_path = Path(TARGET_DIR) # 确保目标目录存在 target_path.mkdir(exist_ok=True) copied_count = 0 skipped_count = 0 print(f"开始扫描: {SOURCE_DIR}") print(f"目标目录: {TARGET_DIR}") print("-" * 50) # 递归遍历源目录 for root, dirs, files in os.walk(source_path): for file in files: file_ext = Path(file).suffix.lower() # 检查是否是图片文件 if file_ext in IMAGE_EXTENSIONS: source_file = Path(root) / file target_file = target_path / file # 处理同名文件 final_target = get_unique_filename(target_file) # 如果文件名没有改变(原文件不存在),直接复制 # 如果文件名改变了(有重名),使用新文件名 try: shutil.copy2(source_file, final_target) copied_count += 1 status = "重命名复制" if final_target != str(target_file) else "复制" print(f"[{status}] {file} -> {Path(final_target).name}") except Exception as e: print(f"[错误] 无法复制 {file}: {e}") print("-" * 50) print(f"完成! 共复制 {copied_count} 个图片文件") if __name__ == "__main__": copy_images_recursive()
http://www.jsqmd.com/news/275348/

相关文章:

  • 马斯克今天,开源了推特 X 的信息流推荐系统的工作代码与原理
  • 0.4 View 工作流程
  • 双向隔离DCDC仿真之Simulink探索
  • OIFC 2026省选 0120
  • 流量累计程序 博途v15编写的西门子流量累计程序,封装好的FB块直接可以拿来用,并且配有视频解说
  • qt之实现截图效果
  • 2026年广东比较好的刀塔机定制需要多少钱,Y轴/尾顶机/排刀机/数控4+4/正交Y/动力刀塔/直Y,刀塔机厂家推荐排行
  • 【毕业设计】springboot基于大数据技术的诗词信息系统(源码+文档+远程调试,全bao定制等)
  • 【Python】解决 Windows 下 pip 安装报错 OSError: [Errno 2] No such file or directory (路径过长问题)
  • 深夜调模型的工程师都懂,燃油车和电动车之间总得有个“和事佬“——增程器。今天咱们聊的这个Cruise仿真模型,就是要把这个中间商做出价值
  • 《把脉行业与技术趋势》-72-伟大的组织,不只是会收割,更要会培育土壤。“春天开荒播种是为了秋天收获果实”。
  • 【python实用小脚本-336】HR如何用Python改造敏感信息传递流程?信息安全×代码的化学反应,轻松实现音频隐写术
  • 【2026开年巨献】Gemini 3.0全面解析:从技术原理到商业落地,开发者不可错过的AI革命指南
  • 【GoFrame (GF) 】高性能、模块化、企业级的 Go 语言开发框架
  • 【计算机毕业设计案例】基于springboot+大数据技术旅游商品管理系统大数据毕设选题推荐:基于大数据技术旅游商品管理系统基于springboot+大数据技术旅游商品管理系(程序+文档+讲解+定制)
  • 【2026 深度观察】大模型战国时代:中美双极、四强争霸与生态分化
  • 同步FIFO的三种写法各有特点。计数器法直接用读写计数器差值判断空满,适合小深度场景。举个例子,当depth=1时可以直接用寄存器存储数据
  • 大数据领域 Elasticsearch 集群搭建全流程
  • 自动聊天工具尝试一(寻找方向)
  • 一个python笔试题及扩展
  • 支持付费内容与广告的社区论坛小程序商业化运营源码系统
  • 2025年最受物流企业青睐的自动化立体库解决方案TOP 5,贯通式货架/中型货架/平台货架/轻型货架/重型货架自动化立体库公司有哪些
  • 永久关闭windows系统的自动更新的6种方法 详细介绍
  • 详细介绍:PHP 8.0到PHP 8.5各版本主要新特性的整理
  • 盘点2026年EOR名义雇主服务优势,教你如何选择EOR名义雇主高效产品推荐
  • 猎奇榜
  • Product Hunt 每日热榜 | 2026-01-20
  • 经营范围填写指南
  • 通达信【万马奔腾V8】主图与选股指标源码分享
  • 和vvv