#!/usr/bin/env python3 """ 直接处理文旅订单班的图片整理 """ import os import shutil import re from pathlib import Path def main(): """主函数""" base_dir = Path("/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/data/订单班文档资料/文旅") notion_dir = base_dir / "notion文稿" image_dir = notion_dir / "image" print("=" * 60) print("开始处理文旅订单班图片") print("=" * 60) # 定义图片重命名映射 rename_mapping = { # Whisk系列 -> 设计图系列 "Whisk_03282ab7e5.jpg": "设计图_01.jpg", "Whisk_15f65339bb.jpg": "设计图_02.jpg", "Whisk_192cdc54bc.jpg": "设计图_03.jpg", "Whisk_1c05424f7f.jpg": "设计图_04.jpg", "Whisk_27184afa6e.jpg": "设计图_05.jpg", "Whisk_2a9b622636.jpg": "设计图_06.jpg", "Whisk_4aabd94ef3.jpg": "设计图_07.jpg", "Whisk_5c4b912ea7.jpg": "设计图_08.jpg", "Whisk_8236005bb2.jpg": "设计图_09.jpg", "Whisk_9e8c1f44ac.jpg": "设计图_10.jpg", "Whisk_be64a7b61f.jpg": "设计图_11.jpg", "Whisk_c478fe089d.jpg": "设计图_12.jpg", "Whisk_dcc81c5212.jpg": "设计图_13.jpg", "Whisk_e2ffe75dbc.jpg": "设计图_14.jpg", "Whisk_e2ffe75dbc 1.jpg": "设计图_15.jpg", "Whisk_e8f83d1a37.jpg": "设计图_16.jpg", "Whisk_f3f954649c.jpg": "设计图_17.jpg", # 数字开头的文件 -> 场景图系列 "2.试驾小景.jpg": "场景图_01.jpg", "3.小米汽车.jpg": "场景图_02.jpg", # 中文名保留但规范化 "博览会.jpg": "场景图_03.jpg", "展会内部参观.jpg": "场景图_04.jpg", "展馆布置图.jpeg": "场景图_05.jpg", # 注意是jpeg "签到.jpg": "场景图_06.jpg" } # 处理图片重命名 print("\n📝 开始重命名图片...") renamed_count = 0 for old_name, new_name in rename_mapping.items(): old_path = image_dir / old_name new_path = image_dir / new_name if old_path.exists(): try: # 如果是jpeg转jpg if old_name.endswith('.jpeg'): # 复制并转换格式 shutil.copy2(old_path, new_path) old_path.unlink() # 删除原文件 else: # 直接重命名 shutil.move(str(old_path), str(new_path)) renamed_count += 1 print(f" ✓ {old_name} → {new_name}") except Exception as e: print(f" ✗ 失败 {old_name}: {e}") else: print(f" ⚠ 文件不存在: {old_name}") print(f"\n✅ 重命名完成: {renamed_count}/{len(rename_mapping)} 个文件") # 更新Markdown文件中的引用 print("\n📝 更新Markdown文件...") md_files = list(notion_dir.glob("*.md")) for md_file in md_files: print(f" 处理: {md_file.name}") try: content = md_file.read_text(encoding='utf-8') original_content = content # 替换所有图片引用 for old_name, new_name in rename_mapping.items(): # 处理各种可能的引用格式 # 1. ![xxx](old_name) content = content.replace(f"]({old_name})", f"](./image/{new_name})") # 2. ![xxx](./image/old_name) content = content.replace(f"](./image/{old_name})", f"](./image/{new_name})") # 3. ![xxx](image/old_name) content = content.replace(f"](image/{old_name})", f"](./image/{new_name})") # 4. 直接的文件名引用 content = re.sub( f"(?