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

Python批量重命名handNNN.jpg为hand0NNN.jpg失败求助(VS Code环境)

问题分析与修复

你的代码没生效的核心原因是条件判断错误:filename[4:].isdigit()这部分,拿hand386.jpg举例,filename[4:]取到的是"386.jpg",包含了.jpg后缀,自然不是纯数字,导致判断不成立,重命名逻辑根本没执行。

修正后的代码

import os

# 目标目录
directory = r"C:\Users\anton\Documents\Photos"

for filename in os.listdir(directory):
    # 先筛选符合hand开头、jpg结尾的文件
    if filename.startswith("hand") and filename.endswith(".jpg"):
        # 提取开头hand之后、.jpg之前的部分,也就是数字段
        num_part = filename[4:-4]
        # 检查这部分是否是纯数字
        if num_part.isdigit():
            number = int(num_part)
            # 格式化为4位数字(比如386变成0386)
            new_number = "{:04d}".format(number)
            new_filename = f"hand{new_number}.jpg"
            # 拼接完整路径并重命名
            old_path = os.path.join(directory, filename)
            new_path = os.path.join(directory, new_filename)
            # 可选:打印日志确认操作
            print(f"重命名: {filename} -> {new_filename}")
            os.rename(old_path, new_path)

关键修改点

  • 拆分数字提取逻辑:用filename[4:-4]精准截取hand之后、.jpg之前的部分,确保只拿到数字段
  • 修正格式化为4位数字:原来的{:03d}会把386保留为3位数字,改成{:04d}才会补零变成4位的0386,符合你的需求
  • 增加打印日志(可选):方便你确认哪些文件被处理,排查问题更直观

执行代码前建议先备份文件,避免意外情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:12:39