python unicode编码转换中文_用Python将中文转换成拼音

大噶好,我是郭小帅。

各位老baby们,我更新啦!感动吗?我连自己都被感动了!好久好久没更新了,我说我忘记公众号密码了你们信嘛?

最近有几位粉丝吧,干啥啥不行,催更第一名。行,我服了,我放下了手里的荣耀,放弃了我的队友们,更一波!!【这段时间流失了不少粉,扎铁啊老心们】

919bcee627917a4dcca471992aa16191.png

最近呢,工作上遇到了不少案例,我都会来给大家都掰扯掰扯。

就比如,最近有个老baby问我,你能不能把中文转换成拼音呀?当时我就在想,这是什么需求?为啥会有这种需求?是啥应用场景呢?【懵逼】

但是像我这么知【pa】书【re】达【ma】理【fan】的人,从来不问原因,干活就完了!

我就琢磨,这种需求应该网上有很多嘛,Execl难道没有这个功能吗?【嫌弃脸】

939aca65e8fa8c9a4f612e523823e50f.gif

b2ba64e9cc71d85833a3f4303e5c93cf.png

然后呢,咱不就开始冲了嘛。嘿,突然发现看似寻常简单的需求,咋搞起来还有点费劲呢。

首先,吐槽某度。某度经验里说用getpy()函数就能取,结果.....em.....不行【我版本不对?打开方式不对?还是说这个函数不是内置函数需要自己写?不知道,它没说,没有用,反正我是不行......】

00b590804bbe6519941540abbd2ad22e.png

哎,算了,某度我都习惯了.....那我们去网页直翻吧。然后发现吧,网页可以转拼音,但就是会有各种各样的问题。要么有字数限制,要么翻出来的还带着声调......

25120e943901e7930a876bb0ba7dbda3.png

913c5806be44025cbda065d5640aa984.png

行吧,我又服了,也懒得找了,咱自己动手搞吧。

b82a5c4b5ab79f0fdfaac682ecb58263.png

接下来我们的重点来了,教你在5分钟内使用Python将汉字转换成拼音

第一步:去网上扒拉现成的

咳咳,对,我就是不要脸。造轮子是不可能造轮子的,只能去网上扒拉一些下来改改勉强生活啦。【野路子程序员必备能力之一:网上粘下来改】

078806a7ea682d8480e90a2283d9e710.gif

e7ce33d390134ede289c215c2bea3c11.png

诺,你看,我们已经成功了一半了,接下来改成适合我们需求的就行。

第二步:改轮子

我们的需要转换的数据比较多,所以呢我们增加一步去读一下Excel,然后再遍历一下名字那一列,这不就完活了嘛【野路子程序员必备能力之二:脸皮厚且无比的相信自己能改出来】

f78a953d3fb11b405f4a4f1202e48ff5.png

代码详解:

(1)老样子,导入第三方库

import pypinyinimport xlrd

(2)网上扒拉下来的轮子。两个函数,都是用作汉字转拼音的,一个带声调,一个不带声调

def pinyin(word):    s = ''    for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):        s += ''.join(i)    return s# 带声调的(默认)def yinjie(word):    s = ''    # heteronym=True开启多音字    for i in pypinyin.pinyin(word, heteronym=True):        s = s + ''.join(i) + " "    return s

(3)自己改的轮子:读取Excel,循环汉字姓名列,然后转成拼音输出

def readexcel(file='file.xls'):    try:        data = xlrd.open_workbook(file)        return data    except Exception as e:        print(str(e))def excel_table_by_name(file=u'test.xlsx', colnameindex=0, by_name=u'Sheet1'):  # 修改自己路径    data = readexcel(file)    table = data.sheet_by_name(by_name)  # 获得表格    nRows = table.nrows  # 拿到总共行数    title_list = table.row_values(0)  # 标题字段    for i in range(1, nRows):  # 循环行数        row_vals = table.row_values(i)        for val in enumerate(row_vals):  # 对每列数据进行循环            print(val[1],pinyin(val[1]))if __name__ == "__main__":    excel_table_by_name()

第三步:运行!完事!奏乐!交作业啦!即可以选择要不要声调,又没有字数限制,还不用联网!【野路子程序员必备能力之三:程序能运行了一定要自嗨!】

58812c0aff9f47291fc7c08de7065d1e.png

94b04bd3ae01e49e28d1af91d07d3874.gif

最后的最后,感谢那些对小帅不离不弃的老baby们【尽管小帅这个更新频率确实感人....从周更、到月更、到季更】,但是我一直没有断更嘛,我还是有活跃度的嘛,你们要一直关注我哦,不要做渣粉~~

7bea72b9f4d9356a0b55192c848b03ff.png

老baby们请点赞、关注、转发一波,你们的鼓励就是我最大的动力!噢啦~

e1e68ae8b09a15aa7a66c5869819885b.png

e8a547cf20dad77077cc64915c603404.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值