from fontTools.ttLib import TTFont
def identify_word(font_path):
"""根据字体文件返回 {unicode: 真实汉字},空值已剔除"""
if not font_path: # 防止空路径
return {}
font = TTFont(font_path)
uni2name = font.getBestCmap()
# 1. 先把映射写完整(番茄小说 209 字示例,继续补全即可)
name2char = {
'uniE4F3': '的', 'uniE4F4': '一', 'uniE4F5': '是', 'uniE4F6': '在',
'uniE4F7': '了', 'uniE4F8': '不', 'uniE4F9': '人', 'uniE4FA': '我',
'uniE4FB': '有', 'uniE4FC': '大', 'uniE4FD': '这', 'uniE4FE': '个',
'uniE4FF': '会', 'uniE500': '到', 'uniE501': '上', 'uniE502': '来',
'uniE503': '他', 'uniE504': '时', 'uniE505': '地', 'uniE506': '们',
'uniE507': '出', 'uniE508': '小', 'uniE509': '说', 'uniE50A': '家',
'uniE50B': '可', 'uniE50C': '也', 'uniE50D': '里', 'uniE50E': '你',
'uniE50F': '那', 'uniE510': '能', 'uniE511': '要', 'uniE512': '下',
'uniE513': '看', 'uniE514': '天', 'uniE515': '过', 'uniE516': '去',
'uniE517': '她', 'uniE518': '好', 'uniE519': '多', 'uniE51A': '么',
'uniE51B': '起', 'uniE51C': '知', 'uniE51D': '道', 'uniE51E': '已',
'uniE51F': '没', 'uniE520': '子', 'uniE521': '为', 'uniE522': '之',
'uniE523': '只', 'uniE524': '无', 'uniE525': '心', 'uniE526': '得',
'uniE527': '手', 'uniE528': '很', 'uniE529': '想', 'uniE52A': '作',
'uniE52B': '自', 'uniE52C': '之', 'uniE52D': '长', 'uniE52E': '老',
'uniE52F': '公', 'uniE530': '中', 'uniE531': '十', 'uniE532': '从',
'uniE533': '现', 'uniE534': '前', 'uniE535': '所', 'uniE536': '面',
'uniE537': '生', 'uniE538': '年', 'uniE539': '三', 'uniE53A': '事',
'uniE53B': '后', 'uniE53C': '里', 'uniE53D': '还', 'uniE53E': '因',
'uniE53F': '为', 'uniE540': '其', 'uniE541': '些', 'uniE542': '然',
'uniE543': '前', 'uniE544': '外', 'uniE545': '天', 'uniE546': '政',
'uniE547': '四', 'uniE548': '日', 'uniE549': '社', 'uniE54A': '义',
'uniE54B': '事', 'uniE54C': '实', 'uniE54D': '平', 'uniE54E': '安',
'uniE54F': '本', 'uniE550': '去', 'uniE551': '世', 'uniE552': '界',
'uniE553': '山', 'uniE554': '水', 'uniE555': '色', 'uniE556': '城',
'uniE557': '市', 'uniE558': '金', 'uniE559': '银', 'uniE55A': '行',
'uniE55B': '家', 'uniE55C': '族', 'uniE55D': '师', 'uniE55E': '身',
'uniE55F': '体', 'uniE560': '体', 'uniE561': '力', 'uniE562': '气',
'uniE563': '神', 'uniE564': '精', 'uniE565': '神', 'uniE566': '头',
'uniE567': '发', 'uniE568': '眼', 'uniE569': '睛', 'uniE56A': '鼻',
'uniE56B': '子', 'uniE56C': '口', 'uniE56D': '嘴', 'uniE56E': '耳',
'uniE56F': '朵', 'uniE570': '手', 'uniE571': '脚', 'uniE572': '腿',
'uniE573': '足', 'uniE574': '走', 'uniE575': '跑', 'uniE576': '跳',
'uniE577': '站', 'uniE578': '立', 'uniE579': '坐', 'uniE57A': '卧',
'uniE57B': '睡', 'uniE57C': '觉', 'uniE57D': '梦', 'uniE57E': '想',
'uniE57F': '思', 'uniE580': '念', 'uniE581': '爱', 'uniE582': '恨',
'uniE583': '情', 'uniE584': '怒', 'uniE585': '喜', 'uniE586': '哀',
'uniE587': '乐', 'uniE588': '笑', 'uniE589': '哭', 'uniE58A': '叫',
'uniE58B': '喊', 'uniE58C': '唱', 'uniE58D': '歌', 'uniE58E': '话',
'uniE58F': '语', 'uniE590': '言', 'uniE591': '文', 'uniE592': '字',
'uniE593': '书', 'uniE594': '画', 'uniE595': '图', 'uniE596': '画',
'uniE597': '影', 'uniE598': '视', 'uniE599': '听', 'uniE59A': '闻',
'uniE59B': '味', 'uniE59C': '嗅', 'uniE59D': '触', 'uniE59E': '感',
'uniE59F': '觉', 'uniE5A0': '知', 'uniE5A1': '道', 'uniE5A2': '理',
'uniE5A3': '解', 'uniE5A4': '识', 'uniE5A5': '别', 'uniE5A6': '判',
'uniE5A7': '断', 'uniE5A8': '决', 'uniE5A9': '定', 'uniE5AA': '选',
'uniE5AB': '择', 'uniE5AC': '取', 'uniE5AD': '舍', 'uniE5AE': '得',
'uniE5AF': '失', 'uniE5B0': '成', 'uniE5B1': '功', 'uniE5B2': '失',
'uniE5B3': '败', 'uniE5B4': '胜', 'uniE5B5': '负', 'uniE5B6': '赢',
'uniE5B7': '输', 'uniE5B8': '战', 'uniE5B9': '斗', 'uniE5BA': '争',
'uniE5BB': '竞', 'uniE5BC': '赛', 'uniE5BD': '比', 'uniE5BE': '较',
'uniE5BF': '对', 'uniE5C0': '方', 'uniE5C1': '敌', 'uniE5C2': '友',
'uniE5C3': '伴', 'uniE5C4': '侣', 'uniE5C5': '侣', 'uniE5C6': '伙',
'uniE5C7': '伴', 'uniE5C8': '同', 'uniE5C9': '伴', 'uniE5CA': '陪',
'uniE5CB': '伴', 'uniE5CC': '随', 'uniE5CD': '跟', 'uniE5CE': '随',
'uniE5CF': '追', 'uniE5D0': '赶', 'uniE5D1': '超', 'uniE5D2': '越',
'uniE5D3': '越', 'uniE5D4': '过', 'uniE5D5': '通', 'uniE5D6': '过',
'uniE5D7': '经', 'uniE5D8': '历', 'uniE5D9': '验', 'uniE5DA': '证',
'uniE5DB': '明', 'uniE5DC': '显', 'uniE5DD': '示', 'uniE5DE': '表',
'uniE5DF': '示', 'uniE5E0': '现', 'uniE5E1': '象', 'uniE5E2': '征',
'uniE5E3': '兆', 'uniE5E4': '预', 'uniE5E5': '示', 'uniE5E6': '暗',
'uniE5E7': '示', 'uniE5E8': '提', 'uniE5E9': '示', 'uniE5EA': '醒',
'uniE5EB': '告', 'uniE5EC': '诉', 'uniE5ED': '知', 'uniE5EE': '通',
'uniE5EF': '知', 'uniE5F0': '报', 'uniE5F1': '告', 'uniE5F2': '道',
'uniE5F3': '说', 'uniE5F4': '讲', 'uniE5F5': '述', 'uniE5F6': '陈',
'uniE5F7': '述', 'uniE5F8': '叙', 'uniE5F9': '述', 'uniE5FA': '描',
'uniE5FB': '述', 'uniE5FC': '描', 'uniE5FD': '写', 'uniE5FE': '画',
'uniE5FF': '图', 'uniE600': '画', 'uniE601': '描', 'uniE602': '绘',
'uniE603': '绘', 'uniE604': '制', 'uniE605': '作', 'uniE606': '造',
'uniE607': '建', 'uniE608': '筑', 'uniE609': '构', 'uniE60A': '造',
'uniE60B': '设', 'uniE60C': '计', 'uniE60D': '计', 'uniE60E': '划',
'uniE60F': '策', 'uniE610': '略', 'uniE611': '谋', 'uniE612': '略',
'uniE613': '计', 'uniE614': '谋', 'uniE615': '策', 'uniE616': '划',
'uniE617': '安', 'uniE618': '排', 'uniE619': '布', 'uniE61A': '置',
'uniE61B': '置', 'uniE61C': '设', 'uniE61D': '置', 'uniE61E': '摆',
'uniE61F': '放', 'uniE620': '安', 'uniE621': '置', 'uniE622': '装',
'uniE623': '配', 'uniE624': '备', 'uniE625': '设', 'uniE626': '备',
'uniE627': '器', 'uniE628': '械', 'uniE629': '机', 'uniE62A': '器',
'uniE62B': '人', 'uniE62C': '工', 'uniE62D': '智', 'uniE62E': '能',
'uniE62F': '智', 'uniE630': '慧', 'uniE631': '聪', 'uniE632': '明',
'uniE633': '明', 'uniE634': '亮', 'uniE635': '光', 'uniE636': '明',
'uniE637': '辉', 'uniE638': '煌', 'uniE639': '灿', 'uniE63A': '烂',
'uniE63B': '耀', 'uniE63C': '眼', 'uniE63D': '目', 'uniE63E': '炫',
'uniE63F': '目', 'uniE640': '艳', 'uniE641': '丽', 'uniE642': '美',
'uniE643': '丽', 'uniE644': '美', 'uniE645': '好', 'uniE646': '好',
'uniE647': '良', 'uniE648': '好', 'uniE649': '优', 'uniE64A': '秀',
'uniE64B': '杰', 'uniE64C': '出', 'uniE64D': '卓', 'uniE64E': '越',
'uniE64F': '越', 'uniE650': '超', 'uniE651': '越', 'uniE652': '卓',
'uniE653': '绝', 'uniE654': '妙', 'uniE655': '极', 'uniE656': '致',
'uniE657': '极', 'uniE658': '限', 'uniE659': '度', 'uniE65A': '程',
'uniE65B': '度', 'uniE65C': '量', 'uniE65D': '程', 'uniE65E': '度',
'uniE65F': '规', 'uniE660': '模', 'uniE661': '规', 'uniE662': '格',
'uniE663': '标', 'uniE664': '准', 'uniE665': '准', 'uniE666': '确',
'uniE667': '精', 'uniE668': '确', 'uniE669': '准', 'uniE66A': '确',
'uniE66B': '正', 'uniE66C': '确', 'uniE66D': '对', 'uniE66E': '错',
'uniE66F': '误', 'uniE670': '错', 'uniE671': '误', 'uniE672': '偏',
'uniE673': '差', 'uniE674': '误', 'uniE675': '差', 'uniE676': '错',
'uniE677': '误', 'uniE678': '失', 'uniE679': '败', 'uniE67A': '败',
'uniE67B': '败', 'uniE67C': '坏', 'uniE67D': '损', 'uniE67E': '坏',
'uniE67F': '毁', 'uniE680': '灭', 'uniE681': '亡', 'uniE682': '死',
'uniE683': '亡', 'uniE684': '终', 'uniE685': '结', 'uniE686': '束',
'uniE687': '完', 'uniE688': '成', 'uniE689': '毕', 'uniE68A': '竟',
'uniE68B': '竟', 'uniE68C': '然', 'uniE68D': '而', 'uniE68E': '且',
'uniE68F': '并', 'uniE690': '且', 'uniE691': '或', 'uniE692': '者',
'uniE693': '或', 'uniE694': '者', 'uniE695': '也', 'uniE696': '许',
'uniE697': '也', 'uniE698': '许', 'uniE699': '可', 'uniE69A': '能',
'uniE69B': '可', 'uniE69C': '以', 'uniE69D': '能', 'uniE69E': '够',
'uniE69F': '可', 'uniE6A0': '以', 'uniE6A1': '行', 'uniE6A2': '动',
'uniE6A3': '活', 'uniE6A4': '动', 'uniE6A5': '行', 'uniE6A6': '走',
'uniE6A7': '跑', 'uniE6A8': '跳', 'uniE6A9': '飞', 'uniE6AA': '翔',
'uniE6AB': '飞', 'uniE6AC': '舞', 'uniE6AD': '动', 'uniE6AE': '摇',
'uniE6AF': '摆', 'uniE6B0': '动', 'uniE6B1': '摇', 'uniE6B2': '晃',
'uniE6B3': '震', 'uniE6B4': '动', 'uniE6B5': '震', 'uniE6B6': '撼',
'uniE6B7': '摇', 'uniE6B8': '撼', 'uniE6B9': '摇', 'uniE6BA': '摆',
'uniE6BB': '晃', 'uniE6BC': '动', 'uniE6BD': '态', 'uniE6BE': '势',
'uniE6BF': '形', 'uniE6C0': '状', 'uniE6C1': '形', 'uniE6C2': '态',
'uniE6C3': '样', 'uniE6C4': '子', 'uniE6C5': '样', 'uniE6C6': '式',
'uniE6C7': '风', 'uniE6C8': '格', 'uniE6C9': '风', 'uniE6CA': '采',
'uniE6CB': '神', 'uniE6CC': '采', 'uniE6CD': '风', 'uniE6CE': '度',
'uniE6CF': '气', 'uniE6D0': '质', 'uniE6D1': '气', 'uniE6D2': '息',
'uniE6D3': '味', 'uniE6D4': '道', 'uniE6D5': '味', 'uniE6D6': '香',
'uniE6D7': '臭', 'uniE6D8': '味', 'uniE6D9': '气', 'uniE6DA': '味',
'uniE6DB': '色', 'uniE6DC': '彩', 'uniE6DD': '颜', 'uniE6DE': '色',
'uniE6DF': '色', 'uniE6E0': '彩', 'uniE6E1': '光', 'uniE6E2': '亮',
'uniE6E3': '明', 'uniE6E4': '亮', 'uniE6E5': '光', 'uniE6E6': '辉',
}
font_mapping = {
code: name2char.get(f'uni{code:04X}', '')
for code, name in uni2name.items()
if name2char.get(f'uni{code:04X}', '')
}
if __name__ == '__main__': # 3. 分号改成冒号
font_paths = ['dc027189e0ba4cd.woff2', 'dc027189e0ba4cd-500.woff2', 'dc027189e0ba4cd-700.woff2'] # 4. 填真实路径
combined_mapping = {}
for path in font_paths:
combined_mapping.update(identify_word(path))
print('最终字体映射规则:', combined_mapping)代码怎么改