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

Python脚本运行后文件名未更改的问题求助

问题排查与修正方案

代码中的核心问题分析

  1. 文件路径判断失效
    os.path.isfile(filename)中的filename仅为JAN目录下的文件名,并非完整路径。脚本运行在JAN的上级目录,因此该判断始终返回False,导致os.rename从未执行。应使用拼接好的完整路径f(修正后命名为old_path)进行判断。

  2. 重命名的源文件路径错误
    os.rename(filename, new_f)中的filename未包含目录前缀,脚本无法定位到JAN目录内的文件,需替换为完整路径。

  3. 新文件路径错误

  • 原代码中f'JAN-{num}.txt'.format(num=num)属于冗余写法,f-string已支持直接嵌入变量,无需额外调用format。
  • 新文件未指定JAN目录,执行后会被移到脚本所在的上级目录,而非保留在JAN内,需拼接目录路径。

修正后的代码

import os

directory = 'JAN'
num = 1
for filename in os.listdir(directory):
    # 拼接源文件完整路径
    old_path = os.path.join(directory, filename)
    # 跳过非文件(如子目录)
    if not os.path.isfile(old_path):
        continue
    # 拼接新文件完整路径,确保文件留在JAN目录内
    new_path = os.path.join(directory, f'JAN-{num}.txt')
    # 执行重命名操作
    os.rename(old_path, new_path)
    print(f"已重命名:{old_path} -> {new_path}")
    num += 1

修正关键点说明

  • 使用完整路径old_path进行文件判断和重命名,确保脚本能准确定位目标文件。
  • 新文件路径new_path拼接了directory参数,保证重命名后的文件仍留在JAN目录中。
  • 增加非文件跳过逻辑,避免遍历到子目录时出现错误。
  • 简化f-string写法,去除冗余的format调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:05:45