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

如何使用Python基于Excel名称列表修改文件名称的末尾部分

Python 按修改时间排序+Excel列表批量追加文件名解决方案

前置依赖

首先安装需要的第三方库:
pip install pandas openpyxl

实现逻辑

  • 读取Excel文件中存储的名称列表
  • 读取目标文件夹下的所有文件,按最后修改时间排序
  • 逐文件拆分原文件名和后缀,将对应位置的名称追加到文件名主体后,拼接后缀生成新文件名
  • 执行重命名操作

完整可运行代码

import os
import pandas as pd

# -------------------------- 配置参数(请修改为你自己的路径/参数) --------------------------
EXCEL_PATH = "你的名称列表文件路径.xlsx"  # 存储名称列表的Excel文件路径
TARGET_FOLDER = "待重命名文件所在文件夹路径"  # 需要批量重命名的文件所在的文件夹
NAME_COLUMN_INDEX = 0  # 名称在Excel的第几列,第一列填0,第二列填1,以此类推
EXCEL_HAS_HEADER = False  # Excel第一行是不是表头,是就填True,不是填False
# ----------------------------------------------------------------------------------------

# 1. 读取Excel中的名称列表
header = 0 if EXCEL_HAS_HEADER else None
name_df = pd.read_excel(EXCEL_PATH, header=header)
name_list = name_df.iloc[:, NAME_COLUMN_INDEX].tolist()

# 2. 读取目标文件夹下的所有文件,按最后修改时间升序排序(最早修改的排在最前)
file_list = []
for filename in os.listdir(TARGET_FOLDER):
    file_full_path = os.path.join(TARGET_FOLDER, filename)
    # 仅保留文件,过滤掉文件夹
    if os.path.isfile(file_full_path):
        file_list.append(filename)
# 按修改时间排序
file_list.sort(key=lambda x: os.path.getmtime(os.path.join(TARGET_FOLDER, x)))

# 3. 校验文件数量和名称数量是否匹配
if len(file_list) != len(name_list):
    raise ValueError(f"文件数量({len(file_list)})与Excel中名称数量({len(name_list)})不匹配,请检查后重试")

# 4. 执行批量重命名
for idx, old_filename in enumerate(file_list):
    # 拆分原文件的名称主体和后缀
    file_base_name, file_ext = os.path.splitext(old_filename)
    # 生成新文件名:原名称主体 + 追加的名称 + 原后缀
    new_filename = f"{file_base_name}{name_list[idx]}{file_ext}"
    # 拼接完整路径
    old_full_path = os.path.join(TARGET_FOLDER, old_filename)
    new_full_path = os.path.join(TARGET_FOLDER, new_filename)
    # 重命名
    os.rename(old_full_path, new_full_path)
    print(f"重命名完成:{old_filename} → {new_filename}")

注意事项

  • 运行脚本前务必先备份所有待重命名的文件,避免操作失误导致文件命名混乱无法恢复
  • 若需要按修改时间从新到旧排序,将排序代码改为:file_list.sort(key=lambda x: -os.path.getmtime(os.path.join(TARGET_FOLDER, x)))
  • 若仅需要处理特定后缀的文件,可以在过滤文件的步骤添加后缀判断,比如仅处理csv文件:if os.path.isfile(file_full_path) and filename.endswith('.csv')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:45:03