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

如何基于DataFrame列按修改日期批量重命名文件夹内文件

解决方案

核心思路

先获取目标文件夹下的所有图片文件,按修改时间从早到晚排序,再与DataFrame的new_name列按顺序匹配,最后执行重命名操作。

完整代码

import os

# 目标文件夹路径
folder_path = r"E:\folder"

# 1. 获取文件夹内所有.jpg格式文件的完整路径
image_files = [
    os.path.join(folder_path, filename)
    for filename in os.listdir(folder_path)
    if filename.lower().endswith(".jpg")
]

# 2. 按文件修改时间排序(最早修改的排在最前)
sorted_files = sorted(image_files, key=lambda f: os.path.getmtime(f))

# 3. 校验文件数量与new_name列行数是否一致,避免匹配错误
if len(sorted_files) != len(df["new_name"]):
    raise ValueError("文件数量与DataFrame中new_name的行数不匹配,请检查!")

# 4. 遍历执行重命名
for old_file_path, new_name in zip(sorted_files, df["new_name"]):
    # 拼接新文件路径,保留.jpg后缀
    new_file_path = os.path.join(folder_path, f"{new_name}.jpg")
    os.rename(old_file_path, new_file_path)

原代码问题说明

  1. 未正确获取文件列表:原代码中file_path未定义,os.path.basename(file_path)无法获取有效文件名;
  2. 匹配顺序错误:没有对文件按修改时间排序,无法保证最早修改的文件对应DataFrame第一行;
  3. 字典键值颠倒:dict(zip(file_name, df['new_name']))将文件名作为键、新名称作为值,遍历交换了新旧名称的位置,导致重命名逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:34:53