Python 批量替换文件夹、文件名称违规字符

场景:

公司的同事在备份自己的素材文件到NAS时提示上传文件名称不可为特殊字符,通过判断文件的命名规则,发现违规的原因是命名文件名时使用了 8.16 这样的日期,存在命名规范外的字符 . (点),因为文件较多,且大,所以写了一个这样的Python程序用于全局替换

需要注意的是调用方法path路径参数有需要到 \ 反斜杠表示路径分隔时需要再写一个反斜杠用于转义,正常路径为:D:\test,转义后为change_file_name(path=“D:\\test”)

def change_file_name(path):

    original_name = '.'  # 匹配的字符串
    replace_name = '_'  # 替换的字符串

    files_all = os.listdir(path)  # 得到文件夹下的所有文件名称
    for file in files_all :  # 遍历文件夹
        if os.path.isdir(path + '\\' + file) :
            # 递归判断是否是文件夹
            change_file_name(path + '\\' + file)
        else :
            files2 = os.listdir(path + '\\')
            for file1 in files2 :
                if original_name in file1 :
                    old_dir = os.path.join(path, file1)  # 原来的文件路径
                    if os.path.isdir(old_dir) :  # 如果是文件夹就跳过
                        new_name = str(path + '\\' + file1.replace(original_name, replace_name))
                        old_name = str(path + '\\' + str(file1))
                        os.rename(old_name, new_name)

                    filename = os.path.splitext(file)[0]  # 文件名
                    filetype = os.path.splitext(file)[1]  # 文件扩展名
                    new_name = str(path + '\\' + filename.replace(original_name, replace_name) + str(filetype))
                    old_name = str(path + '\\' + str(filename) + str(filetype))
                    os.rename(old_name, new_name)
                    print(new_name) 			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

至少名字上不能输的李先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值