Python玩转《生僻字》
Python玩转《生僻字》
- 最终效果
- 思路
- pypinyin库
- 读写txt文本
- 拼接
- 回顾
- 代码下载
- 最后
茕茕孑立 沆瀣一气
踽踽独行 醍醐灌顶
绵绵瓜瓞 奉为圭臬
龙行龘龘 犄角旮旯
娉婷袅娜 涕泗滂沱
呶呶不休 不稂不莠
一首《生僻字》,考验的是“语文”硬实力。倘若实力不够,其实可以拿Python来凑,毕竟库多!今天就来说一个神奇pypinyin库,库如其名,python版本的拼音库。也很简单,可以将汉字转为拼音。
最终效果
个人最喜欢print到命令行中的样式
当然,正规的操作是读取汉字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)
print(result)
with open("%s_拼音.txt"%txt_name,'w',encoding='UTF-8-sig') as m:m.write(result)
拼接
这里涉及到中文字符占2个字节,写入txt时编码格式的选择,摸索半天勉强做到大致上一一对应。
def transfer(text):#去除字符串中空格no_space_text = ''.join(text.split(" "))raw_list = []temp = ""for i in range(len(no_space_text)):if is_Chinese(no_space_text[i]):if temp != "":raw_list.append(temp)temp=""raw_list.append(no_space_text[i])else:temp+=no_space_text[i]#生成拼音列表pylist = pinyin(no_space_text)#将拼音列表和字符串拼接对齐text_list = []pinyin_list = []for i in range(len(raw_list)):if is_Chinese(raw_list[i]):pinyin_list.append(pylist[i][0].ljust(6, ' '))text_list.append(raw_list[i].ljust(5,' '))else:pinyin_list.append(pylist[i][0])text_list.append(raw_list[i])pinyin_str = ''.join(pinyin_list)text_str = ''.join(text_list)pinyin_line_list = pinyin_str.split('\n')text_line_list = text_str.split("\n")final_result = ""for i in range(len(pinyin_line_list)):final_result += pinyin_line_list[i] + '\n' + text_line_list[i] + "\n"return final_result
回顾
最初是在接触一个读取剪贴板内容的pyperclip模块,琢磨对剪贴板中字符串如何操作。正好又听到生僻字那首歌,想到既然逐字查拼音是个麻烦事,何不通过Python来批量添加拼音呢?幸运的是还真有大牛写了拼音库,可以拿来直接用。
昨天完成的代码,是对剪贴板中复制的内容添加拼音,感觉实用性不强且不方便,故今天修改为读取txt文本生成注音版本。
另注:示例中对"腌臢"的注音是"yan za",原因是该拼音库暂时只收录了简体版“腌臜”“a za”,对繁体版还未添加。
代码下载
Github代码下载
代码中有两点,在这记录下:
- 读写txt文档时,encoding="UTF-8-sig"是为了去除utf-8带的BOM头’\ufeff’
- 通常汉字都在’\u4e00’ 和 '\u9fff之间,但是生僻字如“㙓” 位于拓展库 ‘\u3400’ 到 '\u4DB5’之间
参考链接
最后
最后再放个《离骚》文本的注音版,还不错,嘿~
Python玩转《生僻字》相关推荐
- python将txt转为字符串_Python 玩转生僻字
茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 娉婷袅娜 涕泗滂沱 呶呶不休 不稂不莠 这首<生僻字>,考验的是"语文"硬实力.倘若实力 ...
- python输出大字号汉字_Python print 玩转点阵字
学python3第一句大概率是 print("hello world") 吧,既然可以逐行逐个地输出字符,那么把字符组成汉字应该也不难吧?经过一番搜索与尝试,实现了通过python ...
- python将txt转为字符串_Python玩转《生僻字》
茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 娉婷袅娜 涕泗滂沱 呶呶不休 不稂不莠 这首<生僻字>,考验的是"语文"硬实力.倘若实力 ...
- Python 玩转《生僻字》
茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 娉婷袅娜 涕泗滂沱 呶呶不休 不稂不莠 这首<生僻字>,考验的是"语文"硬实力.倘若实力 ...
- 装13失败后,我决定使用Python为生僻字批量注音
装13的冷场 "龙生九子,各不相同-" 囚牛.睚眦.嘲风.蒲牢.狻猊.霸下.狴犴.负屃.螭吻. 都说提笔忘字丢人,可至少还有提笔的机会.随着信息化时代的普及,原来越多的人成了半文盲 ...
- python ljust 中文_python ljust 中文_Python为文档批量注音(生僻字歌词为例)
抖音配乐--生僻字 首次听到生僻字就是从抖音了,随着生僻字配乐使用的人越来越多,很多人翻唱.模仿甚至有讲解成语出处和寓意的段子,可谓百家争鸣. 但,有一类视频很不讨喜,就是把歌词用谐音字代替,好让人一 ...
- Python print 玩转点阵字
Python print 玩转点阵字 效果图 点阵字 HZK16字库 实现单字 单字代码 命令行中效果 pycharm编辑器中效果 实现多字 多字代码 多字命令行效果 pycharm编辑器多字效果 最 ...
- python print 字体大小_Python print 玩转“点阵字”
原标题:Python print 玩转"点阵字" 学习python3第一句大概率是 print("hello world") 吧?既然可以逐行逐个地输出字符,那 ...
- python生僻字如何转码_装13失败后,我决定使用Python为生僻字批量注音
装13的冷场 "龙生九子,各不相同-" 囚牛.睚眦.嘲风.蒲牢.狻猊.霸下.狴犴.负屃.螭吻. 都说提笔忘字丢人,可至少还有提笔的机会.随着信息化时代的普及,原来越多的人成了半文盲 ...
最新文章
- docker的常用命令汇总
- ActiveReports 6.0 - 高效开发UI
- php中退出怎么写,php中退出登录怎么写
- ArrayList和HashMap遍历比较
- python僵尸进程和孤儿进程_进程3.0——进程状态与僵尸进程、孤儿进程
- android Baseadapter 和 ViewHolder的使用
- python机器学习库keras——CNN卷积神经网络识别手写体
- matlab memorySian,matlab内存溢出的解决方案
- ad16自动布线设置规则_未来的PCB协同设计制造过程离不开自动化工具
- springboot源码 红色J_通达信精准指标,精确箱体——(主图 源码)介绍
- java排队系统模型,排队论模型(三):M / M / s/ s 损失制排队模型
- Unity粒子特效系列-毒液喷射预制体做好了,unitypackage包直接用
- office2019初体验与kms服务器搭建
- faststone capture截图,怎么截不出图?关于FastStone Capture无法截图、FastStone Capture捕捉矩形区域之后没反应、
- 备案服务器查询网站,网站服务器备案查询
- V831——识别指定的人脸
- 修复登录答题微信小程序源码下载
- 【Unity】关于U3d与bip骨骼适配
- 谷歌浏览器Chrome错误代码:ERR_CONNECTION_ABORTED
- Bacteria(优先队列)