900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python缩写转换成全拼_Python中文转拼音代码(支持全拼和首字母缩写)

python缩写转换成全拼_Python中文转拼音代码(支持全拼和首字母缩写)

时间:2024-02-18 05:33:27

相关推荐

python缩写转换成全拼_Python中文转拼音代码(支持全拼和首字母缩写)

#!/usr/bin/env python

# -*- coding:utf-8 -*-

"""

原版代码:/cleverdeng/pinyin.py

新增功能:

1、可以传入参数firstcode:如果为true,只取汉子的第一个拼音字母;如果为false,则会输出全部拼音;

2、修复:如果为英文字母,则直接输出;

3、修复:如果分隔符为空字符串,仍然能正常输出;

4、升级:可以指定词典的文件路径

"""

__version__='0.9'

__all__=["PinYin"]

importos.path

classPinYin(object):

def__init__(self):

self.word_dict={}

defload_word(self,dict_file):

self.dict_file=dict_file

ifnotos.path.exists(self.dict_file):

raiseIOError("NotFoundFile")

withfile(self.dict_file)asf_obj:

forf_lineinf_obj.readlines():

try:

line=f_line.split('')

self.word_dict[line[0]]=line[1]

except:

line=f_line.split(' ')

self.word_dict[line[0]]=line[1]

defhanzi2pinyin(self,string="",firstcode=False):

result=[]

ifnotisinstance(string,unicode):

string=string.decode("utf-8")

forcharinstring:

key='%X'%ord(char)

value=self.word_dict.get(key,char)

outpinyin=str(value).split()[0][:-1].lower()

ifnotoutpinyin:

outpinyin=char

iffirstcode:

result.append(outpinyin[0])

else:

result.append(outpinyin)

returnresult

defhanzi2pinyin_split(self,string="",split="",firstcode=False):

"""提取中文的拼音

@param string:要提取的中文

@param split:分隔符

@param firstcode: 提取的是全拼还是首字母?如果为true表示提取首字母,默认为False提取全拼

"""

result=self.hanzi2pinyin(string=string,firstcode=firstcode)

returnsplit.join(result)

if__name__=="__main__":

test=PinYin()

test.load_word('word.data')

string="Java程序性能优化-让你的Java程序更快更稳定"

print"in: %s"%string

print"out: %s"%str(test.hanzi2pinyin(string=string))

print"out: %s"%test.hanzi2pinyin_split(string=string,split="",firstcode=True)

print"out: %s"%test.hanzi2pinyin_split(string=string,split="",firstcode=False)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。