Python文件重命名,中文名转英文名(含标点符号),改进版

介绍一种使用Python批量将文件夹内中文文件名转换为英文并进行重命名的方法,此方法能有效避免因文件名包含中文而导致的读取问题,并通过去除标点符号进一步提高文件名的规范性。

项目需要,很多中文文件名需要重命名,不然cv2会读不出来,如果全部改为数字,可能会丢失一些信息,所以需要中文转英文,网上有大神已经写好的脚本,根据工程实际进行了修改:

1.增加了去除标点符号的功能,例如很多中文的、()【】全部都可以去掉。

2.优化了之前代码中一些有点重复的内容。

3.可以打开注释,解决一些文件重命名后会重名的问题。

#**********by  zhaobm**********#

import random
import os
import pypinyin
from pypinyin import pinyin, lazy_pinyin


def rename():
    path = "./hongwai"

    filelist = os.listdir(path)  # 该文件夹下所有的文件(包括文件夹)

    for files in filelist:  # 遍历所有文件
        Olddir = os.path.join(path, files)  # 原来的文件路径
        if os.path.isdir(Olddir):  # 如果是文件夹则跳过
            continue

        filename = os.path.splitext(files)[0]  # 获取文件名,取0,是一个字符串
        # 把文件名里的汉字转换成其首字母
        filename1 = pinyin(filename, style=pypinyin.FIRST_LETTER)
        #重新合并为一个字符串
        filename1=''.join(e[0] for e in filename1)
        # 去除标点符号,除了字母和数字,其他都去掉
        filename1=''.join(e for e in filename1 if e.isalnum())

        #如果遇到文件修改后重名的问题,打开这里
        # suf=random.randint(1,5)
        # filename1=filename1+str(suf)

        filetype = os.path.splitext(files)[1]  # 文件扩展名

        Newdir = os.path.join(path, filename1 + filetype)  # 新的文件名
        try:
            os.rename(Olddir, Newdir)  # 重命名
        except:
            pass

if __name__ == '__main__':
    rename()
    print('重命名完成,中文名----》中文名。')

水平不高,凑合看。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值