Python 批量重命名文件工具(完整示例)

下面我带你从零开始,用 VS Code 创建一个完整的 Python 批量重命名文件工具项目,一步一步跟着做就能直接运行。


一、准备工作

  1. 安装 Python:确保电脑已装 Python(3.7 以上)
  2. 安装 VS Code
  3. 新建一个空文件夹,比如: D:\PythonProjects\FileRenamer

二、在 VS Code 中创建项目

  1. 打开 VS Code
  2. 点击左上角「文件 → 打开文件夹」,选择刚才的 FileRenamer 文件夹
  3. 左侧资源管理器 → 新建文件 → 命名为 renamer.py

现在项目结构就是:

复制代码
FileRenamer/
 └── renamer.py

三、完整代码(直接复制到 renamer.py

python 复制代码
import os

def batch_rename(folder_path, prefix="img", start=1, zero_pad=3):
    """
    批量重命名文件
    """
    if not os.path.isdir(folder_path):
        print("文件夹不存在!")
        return

    # 获取所有文件(排除文件夹)
    files = [
        f for f in os.listdir(folder_path)
        if os.path.isfile(os.path.join(folder_path, f))
    ]

    count = 0

    for filename in files:
        # 获取后缀
        ext = os.path.splitext(filename)[1]

        # 新文件名
        new_name = f"{prefix}{str(start + count).zfill(zero_pad)}{ext}"

        old_path = os.path.join(folder_path, filename)
        new_path = os.path.join(folder_path, new_name)

        os.rename(old_path, new_path)
        print(f"{filename} -> {new_name}")
        count += 1

    print(f"\n完成!共重命名 {count} 个文件")


if __name__ == "__main__":
    # ========== 在这里修改你的路径 ==========
    target_dir = r"C:\Users\你的用户名\Desktop\测试文件夹"

    # 重命名:前缀, 起始数字, 位数
    batch_rename(target_dir, prefix="photo_", start=1, zero_pad=3)

四、修改路径(关键)

把这行:

python 复制代码
target_dir = r"C:\Users\你的用户名\Desktop\测试文件夹"

改成你自己要重命名的文件夹路径,例如:

python 复制代码
target_dir = r"D:\图片\风景"

Windows 路径前面加 r 可以避免转义问题。


五、运行项目

  1. 在 VS Code 按 F5 运行
  2. 或打开终端,进入项目文件夹执行:
bash 复制代码
python renamer.py

运行后效果:

rust 复制代码
1.jpg -> photo_001.jpg
2.png -> photo_002.png
a.txt -> photo_003.txt
相关推荐
葫芦和十三4 小时前
图解 MongoDB 05|文档模型设计:内嵌 vs 引用,反范式不是免费午餐
后端·mongodb·agent
不能放弃治疗7 小时前
单 Agent 实现模式
后端
兵慌码乱8 小时前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
IT_陈寒10 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
fliter10 小时前
最后一块拼图:用 bitvec 构造 IPv4 包,真正做出自己的 Ping
后端
luckdewei11 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
fliter11 小时前
用 Rust 解析并生成 ICMP 包:checksum、nom 与 cookie-factory
后端
蝎子莱莱爱打怪11 小时前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源
fliter11 小时前
从 panic 到 Result:用 Rust 重新整理一个 ping 项目的错误处理
后端
森蓝情丶12 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端