茕茕孑立 沆瀣一气

踽踽独行 醍醐灌顶

绵绵瓜瓞 奉为圭臬

龙行龘龘 犄角旮旯

娉婷袅娜 涕泗滂沱

呶呶不休 不稂不莠

这首《生僻字》,考验的是“语文”硬实力。倘若实力不够,其实可以拿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文本生成注音版本。

代码下载

https://github.com/pengfexue2/addPinyin

最后再放个《离骚》文本的注音,先txt文本:

以及偏爱的命令行格式:

程序员进阶圈,一个有态度的公众号

python将txt转为字符串_Python 玩转生僻字相关推荐

  1. python将txt转为字符串_Python玩转《生僻字》

    茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 娉婷袅娜 涕泗滂沱 呶呶不休 不稂不莠 这首<生僻字>,考验的是"语文"硬实力.倘若实力 ...

  2. python将txt转为字符串_python做第一只小爬虫

    "受尽苦难而不厌,此乃修罗之路" 本文技术含量过低,请谨慎观看 之前用R语言的Rcurl包做过爬虫,给自己的第一感觉是比较费劲,看着看着发际线就愈加亮眼,最后果断丢之.不过好的是和 ...

  3. python按年月日输出字符串_python日期时间转为字符串或者格式化输出的实例

    python日期时间转为字符串或者格式化输出的实例 如下所示: 年月日时分秒 >>> print datetime.datetime.now().strftime("%Y- ...

  4. python读取路径中字符串_python实现提取str字符串/json中多级目录下的某个值

    字符串多级目录取值: 比如说: 你response接收到的数据是这样的. 你现在只需要取到itemstring 这个字段下的值.其他的都不要! 思路就是:字符串是个json格式(或转为json格式), ...

  5. python处理多行字符串_python多行字符串

    Python中如何处理长代码格式化问题,如何提高格式化输出的长字符串的可读性? 当我们需要格式化输出一个很长的字符串的时候,都写在一行显得很难看,而且可读性也很差:当我们使用链式的语法写代码的时候常常 ...

  6. python用户输入一行字符串_python字符串练习

    1. 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7-位上的字符) 例如: 输入'abcd1234 ' ** 输出'bd24'** str1 = input('请输入:') for it ...

  7. python替换txt指定内容_python 实现类似sed命令的文件内容替换

    #!/usr/bin/env python #_*_coding:utf-8 _*_ #replace()方法把字符串中的 old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换 ...

  8. python 只取年月日 字符串_Python基础:数据类型和变量amp;字符串和编码

    Python基础:1.数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网 ...

  9. python的txt导入数据库_python将txt文档每行内容循环插入数据库的方法

    如下所示: import pymysql import time import re def get_raw_label(rece): re1 = r'"([\s\S]*?)": ...

最新文章

  1. boost log 能不能循环覆盖_前端基础进阶(十四):深入核心,详解事件循环机制...
  2. 关于Less的学习笔记
  3. Matlab中plot函数全功能解析
  4. C#正则表达式引发的CPU跑高问题以及解决方法
  5. 停课集训 11.29
  6. 【公开课】“有三说深度学习”上线
  7. 文字打印机 效果实现
  8. 将MATLAB中的图像信息用到Vivado中
  9. 【渝粤教育】电大中专电商运营实操 (16)作业 题库
  10. 好看好用的字体软件-字体下载大全提供下载
  11. 《Linux/UNIX系统编程手册(上、下册)》
  12. Android技术知识点:如何添加字体资源
  13. Google谷歌的未来 野心:2017 Google I/O 大会 全程回顾
  14. vs2019找不着工具箱了_解决vs2010中工具箱的不见问题
  15. android room 分页,Android官方ORM数据库Room技术解决方案简介(一)
  16. 皮卡丘0.1.5V.GPC无敌版
  17. MIT.6.00.1X --Week 3 Lecture 5 -- 'Divid and conqer' algorithm 分而治之
  18. 来看一个费解而有趣的c++现象
  19. 基于树莓派和LD3320模块的语音识别控制
  20. 海外游戏代投需要注意的

热门文章

  1. 谈谈项目售前的经验:(个人观点)
  2. 【工具】workflowy - 笔记清单工具
  3. 23种设计模式-个人笔记(一)
  4. python 闭包理解与应用
  5. 点击链接启动钉钉微应用(带参数)
  6. 直击|今日头条、凤凰网封禁咪蒙等帐号:不得转世
  7. 时间管理:紧急任务与重要任务
  8. Java循环判断Scanner的输入是否为整数
  9. Android自定义控件onMeasure、onLayout介绍
  10. 有衬线字体与无衬线字体(serif vs sans serif)