python批量文件重命名

import os

def batch_rename(folder_path=r"E:\photo", 
                prefix="new_file", 
                new_extension=None):
    """
    专用版重命名函数(已适配你的路径)
    参数说明:
        folder_path: 已预设为你的目标路径
        prefix: 新文件名前缀(默认"new_file")
        new_extension: 新扩展名(默认保留原后缀)
    """
    # 路径有效性验证
    if not os.path.exists(folder_path):
        raise FileNotFoundError(f"路径不存在: {folder_path}")

    # 获取并筛选文件(排除文件夹)
    files = [f for f in os.listdir(folder_path) 
            if os.path.isfile(os.path.join(folder_path, f))]
    
    # 按文件名排序
    files.sort()

    for i, filename in enumerate(files, 1):
        # 分解原文件名
        name_part, ext_part = os.path.splitext(filename)
        
        # 处理新扩展名
        if new_extension:
            new_ext = f".{new_extension.strip('.')}"
        else:
            new_ext = ext_part
        
        # 生成新文件名(格式:前缀_序号.后缀)
        new_filename = f"{prefix}_{i:03d}{new_ext}"
        
        # 构造完整路径
        old_fullpath = os.path.join(folder_path, filename)
        new_fullpath = os.path.join(folder_path, new_filename)
        
        # 避免覆盖已有文件
        if not os.path.exists(new_fullpath):
            os.rename(old_fullpath, new_fullpath)
            print(f"{filename} -> {new_filename}")
        else:
            print(f"冲突跳过: {new_filename} 已存在")

if __name__ == "__main__":
    # 使用示例 - 直接运行即可
    batch_rename(prefix="vacation")  # 不修改扩展名
    # batch_rename(prefix="travel", new_extension="jpg")  # 修改扩展名版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值