生成对应版本的蜷文的整体字典,不包括未归入蜷文的蓝文、饵文。
Python解译器代码
# 定义python文件路径
with open(r'------\【蜷文RIME码表】基字-拉丁正字.py', 'r', encoding='utf-8') as file:
code = file.read()
exec(code)
【蜷文RIME码表】基字-拉丁正字.py
import os
# 定义词典文件夹路径'dictionary_folder'
dictionary_folder = r'------'
# 读取词典中的单词和含义
def read_dictionary(folder_path):
dictionary = {}
for filename in os.listdir(folder_path):
if filename.endswith('.md'):
if '%' in filename:
parts = filename[:-3].split('%')
# 确保文件名格式正确
if len(parts) == 2:
word, meaning = parts
# 如果含义已经存在于字典中,则将词条添加到已有的词条后面
if meaning in dictionary:
dictionary[meaning] += '/' + word
else:
dictionary[meaning] = word
return dictionary
# 递归读取词典中的单词和含义,包括子文件夹
def read_dictionary_recursive(folder_path):
dictionary = read_dictionary(folder_path)
for entry in os.scandir(folder_path):
if entry.is_dir(): # 如果是文件夹,则递归调用
nested_dict = read_dictionary_recursive(entry.path)
for meaning, words in nested_dict.items():
if meaning in dictionary:
dictionary[meaning] += '/' + words
else:
dictionary[meaning] = words
return dictionary
# 主函数
def main():
try:
dict_version = input('版本号:')
dictionary = read_dictionary_recursive(dictionary_folder)
# 设置码表和表头
rime_header = f'# Rime dictionary\n# encoding: utf-8\n\n---\nname: kubcqesot\nversion: "{dict_version}"\nsort: original\n...'
rime_table = []
# 处理词典,编写码表内容
for meaning, words in dictionary.items():
# 拆分多音字词条
words_list = words.split('/')
for word in words_list:
# 将词条首字母小写化
rime_table.append(f"{meaning}\t{word.lower()}")
# 组成成完整的码表
rime_dict = rime_header + "\n" + "\n".join(rime_table)
# 打印测试码表
print(rime_dict)
# 保存为 YAML 文件
# 定义输出路径
output_file = r"------\kubcqesot.dict.yaml"
with open(output_file, "w", encoding="utf-8") as f:
f.write(rime_dict)
print(f"RIME码表已生成并保存到 {output_file}")
except Exception as e:
print(f"发生错误:{e}")
input("按 Enter 键退出...")
if __name__ == "__main__":
main()