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)