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

Python如何将随机命名文件重命名为指定数字范围的有序文件名(如101-200)

自定义编号区间的批量重命名脚本修改方案

原脚本存在多个会导致文件混乱的核心问题,加上无法适配自定义编号区间的需求,需要从逻辑上做三处核心调整:

  • 遍历目录文件时,先把已经符合pic+数字+.jpg格式的存量文件过滤出来,不要把这些文件纳入待重命名的列表,避免打乱已经命名好的pic1~pic100的原有文件
  • 把硬编码的起始编号、目录、文件前后缀抽成可配置参数,支持快速调整需要的编号区间
  • 增加前置校验逻辑,防止因为待处理文件数量和区间不匹配、目标文件名已存在导致的文件覆盖、丢失问题

修正后可直接使用的代码

import os
import re

# 可自定义配置区域
TARGET_DIR = r"D:\Photos\Summer"
FILE_NAME_PREFIX = "pic"
FILE_NAME_SUFFIX = ".jpg"
RENAME_START_INDEX = 101  # 新文件起始编号
RENAME_END_INDEX = 200     # 新文件终止编号

# 切换到目标操作目录
os.chdir(TARGET_DIR)
# 正则匹配已经符合命名规则的文件,用于过滤待处理列表
standard_name_pattern = re.compile(rf"^{FILE_NAME_PREFIX}\d+{re.escape(FILE_NAME_SUFFIX)}$")

# 收集所有需要重命名的随机命名文件
rename_targets = []
for entry in os.listdir(TARGET_DIR):
    # 只处理普通文件,跳过文件夹
    if os.path.isfile(entry) and not standard_name_pattern.match(entry):
        rename_targets.append(entry)

# 校验待处理文件数量和编号区间是否匹配
expected_count = RENAME_END_INDEX - RENAME_START_INDEX + 1
if len(rename_targets) != expected_count:
    print(f"操作终止:目录下待重命名的文件共{len(rename_targets)}个,和需要生成的{expected_count}个编号数量不匹配")
else:
    current_index = RENAME_START_INDEX
    for old_file_name in rename_targets:
        new_file_name = f"{FILE_NAME_PREFIX}{current_index}{FILE_NAME_SUFFIX}"
        # 二次校验目标文件名是否已存在,避免覆盖原有文件
        if os.path.exists(new_file_name):
            print(f"跳过重命名:目标文件{new_file_name}已存在")
            current_index += 1
            continue
        os.rename(old_file_name, new_file_name)
        print(f"重命名完成:{old_file_name} -> {new_file_name}")
        current_index += 1

关键说明

  • 原脚本中path = os.chdir("D:\\Photos\\Summer")的写法是无效的,os.chdir没有返回值,原代码里path变量实际为None,修正版去掉了这个无效赋值
  • 修正了原脚本不区分文件和文件夹的问题,仅对目录下的普通文件做重命名操作,避免误改动文件夹
  • 脚本执行时只会修改不符合pic+数字+.jpg格式的随机文件,已经存在的pic1~pic100这类合规文件不会被改动
  • 需要调整编号区间的时候,直接修改RENAME_START_INDEX和RENAME_END_INDEX的数值就行,不用改动核心遍历逻辑

操作提示:正式执行批量重命名前,建议先备份目标目录内的所有文件,避免脚本逻辑偏差导致的文件丢失。当前脚本仅处理目标目录下的一级文件,不会递归读取子文件夹内的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 04:45:03