You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中根据指定列表批量重命名文件夹中的图片?

批量重命名图片:用自定义列表替换序号命名

看起来你已经找对了方向——用os.rename()来完成重命名,只是在读取名字列表的环节有点混淆,我帮你梳理清楚两种常见的场景,直接上可运行的代码:

场景1:名字列表已经在代码中定义好

如果你的x = ["hello", "rat", ...]已经直接写在Python代码里,那直接按顺序对应图片序号即可,注意列表长度必须和图片数量一致(1000个元素):

import os

# 替换成你的图片文件夹实际路径,比如 "C:/Users/You/Pictures/MyImages"
image_dir = "/path/to/your/image/folder"

# 你的名字列表,确保有1000个元素
x = ["hello", "rat", ...]  # 省略剩余998个元素

# 先做个安全检查:列表长度是否匹配
if len(x) != 1000:
    raise ValueError("名字列表必须包含1000个元素,和图片数量一致!")

# 遍历所有图片,按序号对应重命名
for img_num in range(1, 1001):
    # 构建原文件路径和新文件路径
    old_path = os.path.join(image_dir, f"{img_num}.jpg")
    new_path = os.path.join(image_dir, f"{x[img_num-1]}.jpg")
    
    # 先确认原文件存在,避免报错
    if os.path.exists(old_path):
        os.rename(old_path, new_path)
        print(f"已完成:{old_path} → {new_path}")
    else:
        print(f"跳过:文件不存在 {old_path}")

场景2:名字列表存放在文本文件中

如果你是把名字存在一个文本文件里(比如names.txt),之前的代码错误在于用open(x)——这里的x应该是文件路径字符串,而不是列表变量。根据你提到的split(',\n'),假设你的文本文件里是用逗号+换行分隔名字,那读取方式可以调整为:

import os

image_dir = "/path/to/your/image/folder"
name_file = "/path/to/your/names.txt"  # 替换成你的文本文件路径

# 读取并处理名字列表
with open(name_file, 'r', encoding='utf-8') as f:
    # 按逗号+换行分割,同时去除多余的空格和空元素
    x = [name.strip() for name in f.read().split(',\n') if name.strip()]

# 同样先检查长度
if len(x) != 1000:
    raise ValueError(f"读取到{len(x)}个名字,需要1000个!")

# 重命名逻辑和场景1完全一致
for img_num in range(1, 1001):
    old_path = os.path.join(image_dir, f"{img_num}.jpg")
    new_path = os.path.join(image_dir, f"{x[img_num-1]}.jpg")
    
    if os.path.exists(old_path):
        os.rename(old_path, new_path)
        print(f"已完成:{old_path} → {new_path}")
    else:
        print(f"跳过:文件不存在 {old_path}")

重要提醒

  1. 先备份! 重命名前一定要把图片文件夹复制一份备份,避免代码出错导致文件丢失或覆盖。
  2. 检查重复名字:如果列表x里有重复的元素,重命名时会覆盖掉之前的文件,建议先检查len(set(x)) == len(x)来确认没有重复。
  3. 路径问题:如果你的Python脚本不在图片文件夹里,一定要用绝对路径,否则os.rename()会找不到文件。

内容的提问来源于stack exchange,提问作者Sahil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:48:33