python 进行中文数字替换为阿拉伯数字

python 进行中文数字替换为阿拉伯数字

晚上学习的时候,突然想起来有一堆的文件夹需要重命名,批量把第九十九期这种数字,更新为第99期

替换方法

def convertNumFromStr(numS):
    num = 0
    if "百" in numS:
        indexB = numS.index("百")
        value = numS[0:indexB]
        num = numDict[value] * 100
        if "十" in numS:
            indexS = numS.index("十")
            value = numS[indexB + 1:indexS]
            if len(value) == 0:
                value = "一"
            num = num + 10 * numDict[value]
            value = numS[indexS + 1:]
            if len(value) > 0:
                num = num + numDict[value]
        else:
            if "零" in numS:
                indexB = indexB + 1
            value = numS[indexB + 1:]
            if len(value) > 0:
                num = num + numDict[value]
    else:
        if "十" in numS:
            indexS = numS.index("十")
            value = numS[0:indexS]
            if len(value) == 0:
                value = "一"
            num = num + 10 * numDict[value]
            value = numS[indexS + 1:]
            if len(value) > 0:
                num = num + numDict[value]
        else:
            num = numDict[numS]
    return num

然后再针对目录进行调用就好了

# 调整目录名称,将汉字数字换成阿拉伯数字
def fixFolderName():
    data_path = '/Users/itknight/lesson'
    album_list = os.listdir(data_path)
    count_rename = 0
    for album in album_list:
        match = re.search('第(\D+)期', album)
        if match:
            number = convertNumFromStr(match.group(1))
            new_ord = '第%03d期' % number
            print(album)
            new_name = re.sub('第(\D+)期', new_ord, album)
            print(new_name)
            os.rename(os.path.join(data_path, album), os.path.join(data_path, new_name))
            count_rename += 1
    print('%s个目录被重命名' % count_rename)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注