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

Python跨目录重命名文件异常问题求助

Python 指定目录文件重命名问题解决

问题原因

你的代码里os.rename(f, "new_file"+str(count))的第二个参数只传入了新文件名,没有指定目标目录。Python会默认将文件移动到脚本运行的当前工作目录(也就是C:\Users\lenovo\Desktop\app),所以原files目录下的文件会被移走,看起来像是被删除了。另外,代码还会丢失原文件的后缀名(比如.txt),这也是需要修复的问题。

修正后的代码

import os

directory = r'C:\Users\lenovo\Desktop\files'
count = 0

# 遍历目标目录下的文件,先排序避免顺序混乱
for filename in sorted(os.listdir(directory)):
    file_path = os.path.join(directory, filename)
    # 只处理文件,跳过子目录
    if os.path.isfile(file_path):
        count += 1
        # 获取原文件的后缀名,保留格式
        file_ext = os.path.splitext(filename)[1]
        # 拼接新的完整路径:目标目录 + 新文件名 + 后缀
        new_file_path = os.path.join(directory, f"new_file{count}{file_ext}")
        # 执行重命名
        os.rename(file_path, new_file_path)

额外注意事项

  • 排序处理:使用sorted(os.listdir(directory))可以让文件按名称排序后再重命名,避免os.listdir返回顺序不稳定导致的命名混乱。
  • 同名文件检查:如果目标目录下已经存在new_file1.txt这类文件,os.rename会报错。可以提前判断文件是否存在,比如添加if not os.path.exists(new_file_path):再执行重命名,或者增加编号避免冲突。
  • 子目录跳过:代码里的os.path.isfile确保只处理文件,不会误操作子目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:25:09