使用Python脚本一键重命名序列帧图片的名称

Written by

in

文章目录
  • 在开发中,我们经常需要使用序列帧动画来实现下拉刷新、加载动画、空状态动效等交互。设计师交付的序列帧图片资源,命名往往各不相同: 序列帧00001.png testImage_00002.png … testImageName_00040.png 而我们的代码通常期望统一的命名规范: modifiedImageName_00001.png modifiedImageName_00002.png … modifiedImageName_00040.png 手动重命名40张上百张图片?不仅耗时,还容易出错。向设计师提出修改请求?对方可能还爱答不理的。本文将教你使用一行Python脚本,实现图片的批量重命名,3秒搞定,彻底解放双手!
  • 通过这个简单的Python脚本,你可以将原本繁琐的图片重命名工作自动化,节省大量时间,减少人为错误。无论是处理40张还是400张序列帧图片,都只需运行一次脚本即可完成。 技术开发的核心价值在于解决重复性工作,让开发者能够专注于更有挑战性的任务。掌握这样的小工具,不仅能提升个人效率,也能让整个团队的开发流程更加规范高效。 立即尝试,告别手动重命名的烦恼,体验自动化带来的便捷吧! 以上就是使用Python脚本一键重命名序列帧图片的名称的详细内容,更多关于Python重命名序列帧图片名称的资料请关注风君子博客其它相关文章! 您可能感兴趣的文章: Python如何实现图片批量重命名功能 Python实现提取Excel嵌入图片并重命名 使用Python实现图片批量重命名工具 Python进行图片信息提取并重命名 python如何实现图片重命名并保存
  • 目录
    • 前言
    • 一、为何需要自动化重命名?
      • 手动重命名的痛点
      • 自动化重命名的优势
    • 二、Python脚本实战:批量重命名序列帧图片
      • 项目结构准备
      • 优化后的Python脚本(带详细注释)
    • 三、脚本核心功能解析
      • 1. 灵活的路径配置
      • 2. 精确的命名匹配
      • 3. 完善的异常处理
      • 4. 智能文件排序
    • 四、如何使用这个脚本?
      • 步骤1:准备环境
      • 步骤2:创建项目结构
      • 步骤3:编辑脚本并配置参数
      • 步骤4:运行脚本
      • 步骤5:查看运行结果
    • 五、进阶使用技巧
      • 1. 批量处理多个文件夹
      • 2. 添加拖拽支持(macOS)
      • 3. 备份原始文件
    • 六、常见问题解答
      • Q1:脚本运行后没有任何文件被重命名?
      • Q2:如何重命名其他格式的图片?
      • Q3:如何处理不规则命名的图片?
    • 结语

      在开发中,我们经常需要使用序列帧动画来实现下拉刷新、加载动画、空状态动效等交互。设计师交付的序列帧图片资源,命名往往各不相同:

      序列帧00001.png
      testImage_00002.png
      ...
      testImageName_00040.png
      

      而我们的代码通常期望统一的命名规范:

      modifiedImageName_00001.png
      modifiedImageName_00002.png
      ...
      modifiedImageName_00040.png
      
      

      手动重命名40张上百张图片?不仅耗时,还容易出错。向设计师提出修改请求?对方可能还爱答不理的。本文将教你使用一行Python脚本,实现图片的批量重命名,3秒搞定,彻底解放双手!

      • 耗时费力:重命名40张图片大约需要5分钟,100张则需更久
      • 易出错:手误改错一个数字,可能导致动画断帧或显示异常
      • 不专业:命名不统一会给团队协作和后续维护带来混乱
      • 重复劳动:每次更换主题或动效样式都需要重复操作

      • 高效快捷:3秒即可完成100张图片的重命名
      • 精准无误:避免人为操作导致的命名错误
      • 高度可复用:简单调整参数即可适用于不同项目
      • 提升效率:将宝贵时间用于核心业务逻辑开发

      创建一个工作文件夹(例如命名为RenameTool),其中包含以下内容:

      RenameTool/
      ├── SourceImages/                    # 原始图片文件夹
      │   ├── testImageName_00001.png
      │   ├── testImageName_00002.png
      │   └── ...(共40张序列帧图片)
      └── rename_images.py                 # Python重命名脚本
      
      • 原始命名testImageName_00001.png ~ testImageName_00040.png
      • 目标命名modifiedImageName_00001.png ~ modifiedImageName_00040.png

      #!/usr/bin/env python3
      # -*- coding: utf-8 -*-
      """
      序列帧动画图片批量重命名工具
      功能:将指定文件夹中的图片文件按照指定规则进行批量重命名
      """
      
      import os
      
      # ==================== 配置参数 ====================
      # 请根据实际情况修改以下四个参数
      
      # 1. 原始图片所在的文件夹路径(相对于脚本的位置)
      SOURCE_FOLDER = 'SourceImages'
      
      # 2. 目标保存的文件夹路径(如果与原始文件夹相同,则为原地重命名)
      TARGET_FOLDER = 'SourceImages'  # 可以修改为'RenamedImages'来保存到新文件夹
      
      # 3. 需要被替换的原始文件名前缀(区分大小写)
      OLD_PREFIX = 'testImageName_'
      
      # 4. 替换后的新文件名前缀
      NEW_PREFIX = 'modifiedImageName_'
      
      # ==================== 主程序开始 ====================
      
      def main():
          """
          主函数:执行批量重命名操作
          """
          print("🔍 iOS序列帧图片批量重命名工具")
          print("=" * 50)
          
          # 检查源文件夹是否存在
          if not os.path.exists(SOURCE_FOLDER):
              print(f"❌ 错误:源文件夹 '{SOURCE_FOLDER}' 不存在!")
              print("💡 提示:请确保脚本与图片文件夹在同一目录下")
              return
          
          # 如果目标文件夹不存在,则创建
          if TARGET_FOLDER != SOURCE_FOLDER and not os.path.exists(TARGET_FOLDER):
              os.makedirs(TARGET_FOLDER)
              print(f"📁 已创建目标文件夹:{TARGET_FOLDER}")
          
          # 获取源文件夹中所有文件,并按名称排序(确保序列正确)
          all_files = sorted(os.listdir(SOURCE_FOLDER))
          
          # 统计计数器
          renamed_count = 0
          skipped_count = 0
          
          print(f"📂 正在扫描文件夹:{SOURCE_FOLDER}")
          print(f"📊 找到 {len(all_files)} 个文件")
          print("-" * 50)
          
          # 遍历文件夹中的所有文件
          for filename in all_files:
              # 检查文件是否为PNG格式且以指定前缀开头
              if filename.endswith('.png') and filename.startswith(OLD_PREFIX):
                  
                  # 构建完整的原始文件路径
                  old_path = os.path.join(SOURCE_FOLDER, filename)
                  
                  # 生成新文件名:替换前缀
                  new_filename = filename.replace(OLD_PREFIX, NEW_PREFIX, 1)
                  
                  # 构建完整的目标文件路径
                  if TARGET_FOLDER == SOURCE_FOLDER:
                      new_path = os.path.join(SOURCE_FOLDER, new_filename)
                  else:
                      new_path = os.path.join(TARGET_FOLDER, new_filename)
                  
                  try:
                      # 执行重命名操作
                      os.rename(old_path, new_path)
                      print(f"✅ 已重命名:{filename} → {new_filename}")
                      renamed_count += 1
                      
                  except FileExistsError:
                      print(f"⚠️  跳过:{new_filename} 已存在,避免覆盖")
                      skipped_count += 1
                  except PermissionError:
                      print(f"❌ 权限错误:无法重命名 {filename}(文件可能被其他程序占用)")
                  except Exception as e:
                      print(f"❌ 错误处理 {filename}: {str(e)}")
              else:
                  # 统计不符合条件的文件
                  if filename.endswith('.png'):
                      print(f"➖ 跳过:{filename}(前缀不匹配)")
                  else:
                      # 非PNG文件,静默跳过
                      skipped_count += 1
          
          # 输出统计结果
          print("=" * 50)
          print("📊 重命名完成!")
          print(f"   ✅ 成功重命名:{renamed_count} 个文件")
          print(f"   ➖ 跳过处理:{skipped_count} 个文件")
          
          if renamed_count > 0:
              if TARGET_FOLDER == SOURCE_FOLDER:
                  print(f"📁 文件保存在:{SOURCE_FOLDER}(原地重命名)")
              else:
                  print(f"📁 文件已保存至:{TARGET_FOLDER}")
              print("🎉 所有序列帧图片已准备就绪,可直接用于iOS项目!")
          else:
              print("ℹ️  没有文件被重命名,请检查配置参数")
      
      # 脚本入口点
      if __name__ == "__main__":
          main()
      

      SOURCE_FOLDER = 'SourceImages'      # 原始图片文件夹
      TARGET_FOLDER = 'SourceImages'      # 目标文件夹(可设置为新文件夹)
      
      • 原地重命名TARGET_FOLDER = SOURCE_FOLDER
      • 保存到新位置TARGET_FOLDER = 'RenamedImages'

      OLD_PREFIX = 'testImageName_'       # 需要被替换的前缀
      NEW_PREFIX = 'modifiedImageName_'   # 新的前缀
      
      • 支持自定义任意前缀替换
      • 确保只替换第一个匹配的前缀,避免错误修改

      • FileExistsError:目标文件已存在时跳过,避免覆盖
      • PermissionError:文件被占用时的友好提示
      • 通用异常捕获:确保脚本不会意外崩溃

      sorted(os.listdir(SOURCE_FOLDER))
      

      确保图片按 00001, 00002… 的顺序处理,保证动画序列的正确性

      确保你的电脑已安装Python 3.x(macOS通常已预装)

      # 创建项目文件夹
      mkdir RenameTool
      cd RenameTool
      
      # 创建原始图片文件夹
      mkdir SourceImages
      
      # 将设计师提供的序列帧图片复制到SourceImages文件夹中
      # 图片命名应为:testImageName_00001.png, testImageName_00002.png...
      
      # 创建Python脚本
      touch rename_images.py
      

      1. 使用文本编辑器打开rename_images.py
      2. 粘贴上面的完整脚本代码
      3. 根据需要修改顶部的四个配置参数:
        • SOURCE_FOLDER:原始图片文件夹名
        • TARGET_FOLDER:目标文件夹名
        • OLD_PREFIX:原始文件名前缀
        • NEW_PREFIX:新文件名前缀

      # 在RenameTool目录下执行
      python3 rename_images.py
      

      脚本会显示详细的处理过程:

      🔍 iOS序列帧图片批量重命名工具
      ==================================================
      📂 正在扫描文件夹:SourceImages
      📊 找到 40 个文件
      --------------------------------------------------
      ✅ 已重命名:testImageName_00001.png → modifiedImageName_00001.png
      ✅ 已重命名:testImageName_00002.png → modifiedImageName_00002.png
      ...
      ==================================================
      📊 重命名完成!
         ✅ 成功重命名:40 个文件
         ➖ 跳过处理:0 个文件
      📁 文件保存在:SourceImages(原地重命名)
      🎉 所有序列帧图片已准备就绪,可直接用于iOS项目!
      

      如果需要处理多个动画序列,可以创建不同的配置块:

      # 配置组1:处理下拉刷新动画
      configs = [
          {
              'source': 'PullRefreshImages',
              'old_prefix': 'refresh_',
              'new_prefix': 'pull_refresh_day_'
          },
          {
              'source': 'LoadingImages', 
              'old_prefix': 'loading_',
              'new_prefix': 'page_loading_'
          }
      ]
      
      # 循环处理所有配置
      for config in configs:
          # 调用重命名函数...
      

      import sys
      
      # 通过拖拽获取文件夹路径
      if len(sys.argv) > 1:
          SOURCE_FOLDER = sys.argv[1]
          print(f"📁 使用拖拽的文件夹:{SOURCE_FOLDER}")
      

      import shutil
      
      # 重命名前先复制到备份文件夹
      backup_folder = f"{SOURCE_FOLDER}_backup"
      if not os.path.exists(backup_folder):
          shutil.copytree(SOURCE_FOLDER, backup_folder)
          print(f"📦 已创建备份:{backup_folder}")
      

      • 检查OLD_PREFIX是否与图片实际前缀完全一致(包括大小写)
      • 确认图片格式是否为.png(脚本默认只处理PNG格式)

      修改脚本中的文件类型判断:

      # 支持多种图片格式
      if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
      

      # 使用正则表达式匹配更复杂的命名模式
      import re
      pattern = r'刷新_(d{5}).png'
      match = re.match(pattern, filename)
      if match:
          number = match.group(1)
          new_filename = f"refresh_animation_{number}.png"
      

      通过这个简单的Python脚本,你可以将原本繁琐的图片重命名工作自动化,节省大量时间,减少人为错误。无论是处理40张还是400张序列帧图片,都只需运行一次脚本即可完成。

      技术开发的核心价值在于解决重复性工作,让开发者能够专注于更有挑战性的任务。掌握这样的小工具,不仅能提升个人效率,也能让整个团队的开发流程更加规范高效。

      立即尝试,告别手动重命名的烦恼,体验自动化带来的便捷吧!

      以上就是使用Python脚本一键重命名序列帧图片的名称的详细内容,更多关于Python重命名序列帧图片名称的资料请关注风君子博客其它相关文章!

      您可能感兴趣的文章:

      • Python如何实现图片批量重命名功能
      • Python实现提取Excel嵌入图片并重命名
      • 使用Python实现图片批量重命名工具
      • Python进行图片信息提取并重命名
      • python如何实现图片重命名并保存

      站内搜索