最近在使用Python做项目时,需要将汉字转化成对应的拼音.在Github上找到了一个现成的程序.

使用实例如下:

from pinyin importPinYin

test=PinYin()

test.load_word()print test.hanzi2pinyin(string="钓鱼岛是中国的")print test.hanzi2pinyin_split(string="钓鱼岛是中国的", split="-")

输出:

["diao", "yu", "dao", "shi", "zhong", "guo", "de"]"diao-yu-dao-shi-zhong-guo-de"

其中hanzi2pinyin函数返回值是一个列表,而hanzi2pinyin_split函数在split参数为空时返回列表,不为空是返回字符串.

但程序存在两个问题,第一是当中文中夹带英文时,英文会丢失.第二则是hanzi2pinyin_split的返回值一会是列表,一会是字符串,让人比较迷糊.

例如:

test.hanzi2pinyin_split(string="钓鱼岛是中国的code123", split="")

我们期待的结果是:

u"diaoyudaoshizhongguodecode123"

但实际结果为:

u"diaoyudaoshizhongguode"

为此,在原来的程序中做了如下改写.

1.hanzi2pinyin函数修改

原来的hanzi2pinyin函数:

def hanzi2pinyin(self, string=""):

result=[]if notisinstance(string, unicode):

string= string.decode("utf-8")for char instring:

key= "%X" %ord(char)

result.append(self.word_dict.get(key, char).split()[0][:-1].lower())return result

修改后的hanzi2pinyin函数:

def hanzi2pinyin(self, string=""):

result=[]if notisinstance(string, unicode):

string= string.decode("utf-8")for char instring:

key= "%X" %ord(char)if notself.word_dict.get(key):

result.append(char)else:

result.append(self.word_dict.get(key, char).split()[0][:-1].lower())return result

修改后的hanzi2pinyin函数可以避免中英文混合的情况下,英文丢失.

2.hanzi2pinyin_split函数修改,将返回值为统一为字符串

原来的hanzi2pinyin_split函数:

def hanzi2pinyin_split(self, string="", split=""):

result= self.hanzi2pinyin(string=string)if split == "":returnresultelse:return split.join(result)

修改后的hanzi2pinyin_split函数(不论split参数是否为空,hanzi2pinyin_split均返回字符串):

def hanzi2pinyin_split(self, string="", split=""):

result= self.hanzi2pinyin(string=string)#if split == "":

#return result

#else:

return split.join(result)

python 把汉字转化为拼音-Python汉字转换成拼音相关推荐

  1. 汉字转拼音 python_python把汉字转换成拼音实现程序

    python把汉字转换成拼音实现程序 文章一个简洁干的汉字转拼音 程序,复制下载就可以直接使用,有需要的同学可以参考一下下. #coding:utf-8 #基于python2.6 table = 'a ...

  2. 把汉字转换成拼音的util

    package com.duanlian.daimengmusic.utils;/*** 汉字转化为拼音*/public class Cn2Spell {private static int[] py ...

  3. java把汉字转换成拼音的2种方式

    java程序将汉字转成拼音的两种方法 1.使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 Java代码   import net.sourceforge.pinyin4j.Pin ...

  4. 几个将汉字转换成拼音的在线工具

    编程时,经常遇到由于汉字兼容性差带来的困扰.解决的方法之一就是使用汉语拼音来代替汉字,(使用英语翻译比较费时).将汉语转换成拼音的方法有很多,可以通过编程实现,比如借助于pinyin package, ...

  5. C#汉字转拼音(npinyin)将中文转换成拼音全文或首字母

    汉字转拼音貌似一直是C#开发的一个难题,无论什么方案都有一定的bug,之前使用了两种方案. 1.Chinese2Spell.cs 一些不能识别的汉字全部转为Z 2.Microsoft Visual S ...

  6. VB 汉字字符串转换成拼音

    以下这个函数可以将一个汉字字符串转换成拼音 Private Function Getpy(Txt) Dim d, TmpTxt Dim wzcode, i, TmpWZ, a, b, ii Set d ...

  7. hive 转拼音udf_自定义UDF函数:将汉字转换成拼音

    工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...

  8. php_excel表中_如何自动将多行中文转换成拼音,Excel2007怎么批量将汉字转换为拼音...

    excel中录入的姓名全是中文,但是要发给老外,所以要改成拼音显示的,怎么批量转换呢?其实方法很简单Excel中自带转换功能,下面就跟学习啦小编一起看看excel2007批量将汉字转换成拼音的方法. ...

  9. C#下汉字转换成拼音

    因为一个开发需求需要把汉字转换成拼音,没想到还真的可以! 找了一个类,是别人整理的,默认情况下第一个字母是大写的.我这边需要都是小写的,可以按照自己情况进行实际的需求进行修改,比如有些时候只要首字母就 ...

  10. 自定义UDF函数:将汉字转换成拼音

    工作需求要讲汉字转换成拼音,自定义UDF函数 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...

最新文章

  1. 二值logit模型的适用条件_一文读懂条件Logistic回归
  2. RTX51 tiny系统要注意的问题:(关于时间片)
  3. 用html写消费记录页面,支付流水记录.html
  4. matlab cep,【CEP】重构和改进HelloInsightObservable
  5. JAVA WEB开发环境搭建教程
  6. html为什么要进行表单验证_化学锚栓为什么要进行拉拔试验?
  7. 指针和引用的区别和联系
  8. 百度网盘直接解析高速下载文件源码
  9. 漏洞挖掘利器-Fuzz技术介绍
  10. 达观杯文本智能处理(2)
  11. bushound的使用和UVC协议的应用开发
  12. 广东取消英语和计算机考试,广东停考全国英语等级考试、全国计算机等级考试...
  13. 计算机本地连接xp,xp系统本地连接不见了的解决方法
  14. 微信v3数据或者v4数据转wxid
  15. 'Project Name' was compiled with optimization - stepping may behave oddly
  16. 微信小程序实战--仿知识星球(一)
  17. 快速破解专业操盘手核心机密(全套)
  18. 微信公众号开发(4)-实现PC扫码登录
  19. EBS: Inventory 模块的两个 package: INV_TXN_MANAGER_PUB INV_LPN_TRX_PUB
  20. 超详细 企业微信推送每日天气或课表(所有东西都可推送)

热门文章

  1. 【调剂】上海理工大学软件工程接收调剂研究生
  2. 如何解决报错500的问题
  3. 我看好金融IT业的几个理由
  4. java中的高内聚和低耦合和接口的简单理解
  5. js判断是否为数字的几种方式
  6. python黑客库长安十二时辰 更新_爬取3万+评论,告诉你究竟是哪些人不喜欢《长安十二时辰》?...
  7. 书生笔记-binlog 的写入机制
  8. sign签名验签方案及代码
  9. IE8 设置图片大小,没有效果
  10. 基于SpringBoot+Vue的在线音乐网站 音乐管理系统(源码调试+文档)