茕茕孑立 沆瀣一气
踽踽独行 醍醐灌顶
绵绵瓜瓞 奉为圭臬
龙行龘龘 犄角旮旯
娉婷袅娜 涕泗滂沱
呶呶不休 不稂不莠
这首《生僻字》,考验的是“语文”硬实力。倘若实力不够,其实可以拿Python来凑,毕竟库多!今天就来说一个有意思的pypinyin库,名字很直白,是Python版的拼音库,用来将汉字转为拼音。
先来看下代码运行效果,比较喜欢将结果print到命令行的样式:
当然,正规的操作是读取汉字txt文本,生成注音版txt文本:
思路
很简单,拼音库可以把汉字转化为拼音,那我们要做的就是读取文本,获取拼音,最后将文本和拼音重新拼接。代码也不难,基本围绕字符串和列表进行拼接操作,比较适合新手朋友拿来练手。
pypinyin库
首先是安装:pip install pypinyin
装好后引入模块:from pypinyin import pinyin
调用 pinyin(“生僻字”) 即可得到拼音列表 [[‘shēng’], [‘pì’], [‘zì’]]
读写txt文本
算是读写txt文件的简单应用:
txt_name = "生僻字"
with open("%s.txt"%txt_name,encoding="UTF-8-sig") as f:
content = f.read()
input_str = contentresult = transfer(input_str)#对读取到的txt进行注音操作
with open("%s_拼音.txt"%txt_name,'w',encoding='UTF-8-sig') as m:
m.write(result)
拼接
首先会对读入的文本进行整理,去除多余的空格,将字符串中的汉字与列表中的拼音一一对应并拼接。
由于中文字符是占两个字节,以及读写txt时也会涉及到编码格式,这部分的代码费了些功夫,只能说勉强做到格式整齐吧。
回顾
最初接触一个读取剪贴板内容的pyperclip模块,琢磨对剪贴板中字符串如何操作。恰巧听到《生僻字》,觉得既然逐字查拼音是个麻烦事,何不通过Python来批量添加拼音呢?很幸运,还真有大佬写了这个pypinyin库,在Github上也已有1500多颗星了~
昨天完成的小代码,是对剪贴板中复制的内容添加拼音,感觉实用性不强且操作不方便,故今天修改为读取txt文本生成注音版本。
代码下载
后台回复 拼音 获取下载链接
最后再放个《离骚》文本的注音,先txt文本:
以及偏爱的命令行格式: