import os
import glob
import re
import colorama
from colorama import init,Fore,Back,Style
init(autoreset=True)
# constants for chinese_to_arabic
CN_NUM = {
'〇' : 0, '一' : 1, '二' : 2, '三' : 3, '四' : 4, '五' : 5, '六' : 6, '七' : 7, '八' : 8, '九' : 9, '零' : 0,
'壹' : 1, '贰' : 2, '叁' : 3, '肆' : 4, '伍' : 5, '陆' : 6, '柒' : 7, '捌' : 8, '玖' : 9, '貮' : 2, '两' : 2,
}
CN_UNIT = {
'十' : 10,
'拾' : 10,
'百' : 100,
'佰' : 100,
'千' : 1000,
'仟' : 1000,
'万' : 10000,
'萬' : 10000,
'亿' : 100000000,
'億' : 100000000,
'兆' : 1000000000000,
}
def chinese_to_arabic(cn:str) -> int:
unit = 0 # current
ldig = [] # digest
for cndig in reversed(cn):
if cndig in CN_UNIT:
unit = CN_UNIT.get(cndig)
if unit == 10000 or unit == 100000000:
ldig.append(unit)
unit = 1
else:
dig = CN_NUM.get(cndig)
if unit:
dig *= unit
unit = 0
ldig.append(dig)
if unit == 10:
ldig.append(10)
val, tmp = 0, 0
for x in reversed(ldig):
if x == 10000 or x == 100000000:
val += tmp * x
tmp = 0
else:
tmp += x
val += tmp
return val
print("-"*100)
def color_1(c):
return f"\033[0;32;40m{c}\033[0m"
def color_2(c):
return f"\033[0;33;40m{c}\033[0m"
def color_3(c):
return f"\033[0;34;40m{c}\033[0m"
def color_4(c):
return f"\033[0;35;40m{c}\033[0m"
here = os.path.dirname(os.path.abspath(__file__))
print(here)
files = glob.glob(here + os.sep +"*.mp4")
# print(files)
print(len(files))
for i, file in enumerate(files):
# print(file)
name = file.split(os.sep)[-1]
# print(name)
i_str = color_4(i+1)
try:
cn_num = re.findall(r"实习医生第(.*?)集", name)[0]
except Exception as e:
print(f"{i_str} ignore: {color_3(e)} and continue")
continue
# print(cn_num)
num = chinese_to_arabic(cn_num)
# print(num)
new_name = f"{num}.mp4"
new_file = here + os.sep + new_name
# print(file, new_file)
os.rename(file, new_file)
print(f"{i_str} change {color_1(name)} -> {color_2(new_name)}")
效果: