查拼音和五笔编码的小工具

admin 2024年2月10日12:46:06评论15 views字数 1886阅读6分17秒阅读模式

给大家推荐一个查拼音和五笔编码的小工具,项目地址:

https://github.com/hyang0/wubi

使用方法:

$ python wubi.py 百家姓.txt汉字: 赵钱孙李拼音: zhao qian sun li五笔: fhqi qgt biy sbf汉字: 周吴郑王拼音: zhou wu zheng wang五笔: mfkd kgdu udbh gggg

将需要查询的汉字批量存入文件中,传参给 wubi.py 即可。txt 文件编码要求是 utf-8 编码。它的工作原理是查询编码字典,根据字典将编码打印出来。

86版五笔编码字典文件为项目下的 wubi86.dict

$ head wubi86.dict工 aaa匞 aad式 aad苷 aaf芽 aah戒 aak苣 aan戔 aar荛 aat芅 aau

数据源来自 rime-wubi 项目,只保留了单字,去除了词语和成语:

https://github.com/rime/rime-wubi

脚本代码为:

import argparsefrom pypinyin import pinyin, Styleimport platformimport osimport sysdef change_default_encoding():    '''判断是否在 windows git-bash 下运行,是则使用 utf-8 编码'''    if platform.system() == 'Windows':        terminal = os.environ.get('TERM')        if terminal and 'xterm' in terminal:            sys.stdout.reconfigure(encoding='utf-8')def is_empty_line(line):    return line.isspace()def load_wubi_dict(file_path):    wubi_dict = {}    with open(file_path, 'r', encoding='utf-8') as file:        for line in file:            char, wubi_code = line.strip().split(' ')            wubi_dict[char] = wubi_code    return wubi_dictdef get_pinyin(character):    pinyin_result = pinyin(character, style=Style.NORMAL)    pinyin_str = ''.join([item[0] for item in pinyin_result])    return pinyin_strdef get_wubi(character, wubi_dict):    wubi_str = wubi_dict.get(character)    if not wubi_str:        return character    return wubi_strif __name__ == "__main__":    change_default_encoding()    parser = argparse.ArgumentParser(description="汉字拼音和五笔编码查询工具")    parser.add_argument("file_path", help="包含汉字的文件路径")    parser.add_argument("--wubi_file", default=r"wubi86.dict", help="五笔编码文件路径,默认为 wubi86.dict")    args = parser.parse_args()    wubi_dict = load_wubi_dict(args.wubi_file)    with open(args.file_path, 'r', encoding='utf-8') as file:        for line in file:            characters = line.strip()            if is_empty_line(line):                continue            py_list = []            wb_list = []            for char in characters:                pinyin_result = get_pinyin(char)                wubi_result = get_wubi(char, wubi_dict)                py_list.append(pinyin_result)                wb_list.append(wubi_result)            print("汉字:", characters)            print("拼音:", ' '.join(py_list))            print("五笔:", ' '.join(wb_list))            print()

全文完。

如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

原文始发于微信公众号(生有可恋):查拼音和五笔编码的小工具

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月10日12:46:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   查拼音和五笔编码的小工具https://cn-sec.com/archives/2486319.html

发表评论

匿名网友 填写信息