python脚本,将一个文本中所有开头发音相同的词归到同一行

请问下,python脚本,将一个文本中所有开头发音相同的词归到同一行
最新回答
听雨的声音滴落

2024-05-16 06:11:20

解决方案如下:

  1. 使用pip安装程序所依赖的汉字转拼音库pypinyin:

pip install pypinyin

2. 代码如下:

from pypinyin import lazy_pinyin

table = {}
with open('in.txt','r', encoding='utf-8') as f:
    for line in f:
        line = line.strip()
        key = lazy_pinyin(line[0])[0]
        if table.get(key):
            table[key].append(line)
        else :
            table[key] = [line]
with open('result.txt','w',encoding='utf-8') as f:
    for key in table:
        f.write(key)
        for v in table[key]:
            f.write(' ' + v)
        f.write('\n')

注意:

  1. 根据需要将代码中的in.txt修改为你要导入的文件名

  2. 要导入的文件编码需要先转换为utf-8格式

  3. 输出文件名为result.txt,编码格式为utf-8