「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑
来源|TEDxPY(ID:TEDxPY)
茕茕孑立 沆瀣一气
踽踽独行 醍醐灌顶
绵绵瓜瓞 奉为圭臬
龙行龘龘 犄角旮旯
娉婷袅娜 涕泗滂沱
呶呶不休 不稂不莠
这首《生僻字》,考验的是“语文”硬实力。倘若实力不够,其实可以拿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 = content
result = 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文本生成注音版本。
代码下载
Github代码下载:
https://github.com/pengfexue2/addPinyin.git
最后再放个《离骚》文本的注音,先txt文本:
以及偏爱的命令行格式:
◆
精彩推荐
◆
「2019 Python开发者日」全日程揭晓!这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。
你也可以点击阅读原文查看大会详情。