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

如何批量重命名文件夹内的文件,实现img1.jpg改为1.jpg的效果?

解决方法

原有代码存在两处核心问题:

  • 仅生成了调整后的文件名写入本地文件,没有调用系统重命名接口修改实际文件
  • 文件名处理逻辑不匹配需求:仅能替换img_前缀,无法匹配你举例的img1.jpg里的img前缀,同时多余的split('jpeg')逻辑无实际作用可以删除

修改后的可直接运行代码如下:

import os

DIRECTORY = '/img/11/'

for img_filename in os.listdir(DIRECTORY):
    # 跳过子目录,只处理文件
    if not os.path.isfile(os.path.join(DIRECTORY, img_filename)):
        continue
    # 分离文件名主体和后缀
    name_part, ext_part = os.path.splitext(img_filename)
    # 仅匹配开头的img前缀,避免文件名中间包含img被误修改
    if name_part.startswith('img'):
        new_name = name_part.removeprefix('img') + ext_part
        # 拼接完整的新旧文件路径
        old_full_path = os.path.join(DIRECTORY, img_filename)
        new_full_path = os.path.join(DIRECTORY, new_name)
        # 执行重命名
        os.rename(old_full_path, new_full_path)

补充注意点:

  • 运行前建议先注释掉os.rename那行,新增一行print(f"预览修改:{old_full_path} -> {new_full_path}"),确认所有文件的修改结果符合预期后,再取消注释执行实际重命名,避免误改文件
  • 如果你的实际文件名前缀是带下划线的img_,把removeprefix('img')改成removeprefix('img_')即可;如果使用Python3.9以下版本,可替换为切片写法name_part[3:](img_前缀对应切片name_part[4:])
  • 如果需要只处理特定格式的图片,可以新增后缀判断逻辑,比如在分离后缀后加一行if ext_part.lower() not in ('.jpg', '.jpeg', '.png', '.webp'): continue,过滤掉非图片文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:36:05