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

如何基于TXT文件内容批量重命名目录下的PNG文件?

基于TXT内容批量重命名PNG文件

以下是整合了你提到的操作的完整可运行代码,同时加入了避免出错的细节处理:

import os
import glob

# 1. 读取TXT文件,生成新文件名列表(自动过滤空行、去除换行符)
txt_path = "你的文件名列表.txt"  # 替换为你的TXT文件路径
with open(txt_path, 'r', encoding='utf-8') as f:
    new_names = [line.strip() for line in f.readlines() if line.strip()]

# 2. 获取目标文件夹下的所有PNG文件,并按文件名排序(保证顺序对应)
png_folder = "你的图片文件夹路径"  # 替换为你的PNG文件夹路径,当前目录可填"./"
png_files = sorted(glob.glob(os.path.join(png_folder, "*.png")))

# 3. 检查文件数量是否匹配,不匹配则终止
if len(png_files) != len(new_names):
    print(f"错误:PNG文件数量({len(png_files)})与TXT行数({len(new_names)})不匹配")
    exit()

# 4. 按索引对应关系批量重命名
for idx, old_file_path in enumerate(png_files):
    # 确保新文件名带.png后缀
    new_file_name = f"{new_names[idx]}.png"
    new_file_path = os.path.join(png_folder, new_file_name)
    
    # 跳过已存在的文件,避免覆盖数据
    if os.path.exists(new_file_path):
        print(f"跳过:{new_file_path} 已存在,未执行重命名")
        continue
    
    # 执行重命名
    os.rename(old_file_path, new_file_path)
    print(f"完成:{os.path.basename(old_file_path)} -> {new_file_name}")

关键细节说明

  • 文件排序:使用sorted()对PNG文件列表排序,确保文件顺序和TXT行顺序严格对应(如果你的PNG原文件名是按数字序号命名的,这个排序会保证1.png对应第一行,2.png对应第二行)
  • 空行过滤:通过if line.strip()过滤TXT中的空行,避免出现空文件名导致的错误
  • 编码处理:读取TXT时指定encoding='utf-8',解决中文文件名乱码问题
  • 后缀保证:自动给新文件名添加.png后缀,避免TXT中未写后缀导致文件格式异常
  • 安全检查:重命名前检查目标文件是否存在,防止误删或覆盖已有文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:18:18