python:将汉字转换为拼音能不能输出拆开的拼音啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python:将汉字转换为拼音能不能输出拆开的拼音啊相关的知识,希望对你有一定的参考价值。

这个是网上给的
import pinyin
test = pinyin()
test.load_word()
test.hanzi2pinyin(string='钓鱼岛是中国的')
但是现在我用的是ipython最新版本,不能这么用,不然只能得到以下结果:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-50-8772c842ac71> in <module>()
1 import pinyin
----> 2 test = pinyin()
3 test.load_word()
4 test.hanzi2pinyin(string='钓鱼岛是中国的')

TypeError: 'module' object is not callable

我现在只会用
import pinyin
test = pinyin.get(q)
print test
输出的是:diaoyudaoshizhongguode

但是我想要的是:['diao', 'yu', 'dao', 'shi', 'zhong', 'guo', 'de']

怎么处理啊?哪位大神好心回答,谢谢啦!!

参考技术A import pinyin
print [pinyin.get(w) for w in q]追问

太谢谢了!
大神能不能大致讲一下下喵,,那个q是什么?

追答

#--encoding:gbk--
q = '钓鱼岛是中国的'

q = q.decode('gbk')
import pinyin
print [pinyin.get(w) for w in q]
可能差不多是这样吧

追问

出来个这个:UnicodeDecodeError: 'gbk' codec can't decode bytes in position 14-15: illegal multibyte sequence求大神帮助

追答

看你的文件用的是什么编码了。
如果用utf-8
就用q.decode('utf-8')

本回答被提问者采纳

Python实现汉字转换拼音

有两个模块都可以实现,一个是 xpinyin模块,还有一个是pypinyin模块,xpinyin模块只是将汉字转换为拼音字母,汉字的拼音字母是没有音调, pypinyin模块不仅将汉字转换为拼音字母,而且汉字的拼音字母是没有音调也都可以输出出来!

一、xpinyin模块

1、安装 xpinyin 模块

pip install xpinyin

2、基本使用

from xpinyin import Pinyin
name = '金领冠珍护405听3'
p = Pinyin()
##转换为小写拼音,默认以 - 为分隔
print(p.get_pinyin(name))      #jin-ling-guan-zhen-hu-405-ting-3

#转换为小写拼音,指定分隔符为空
print(p.get_pinyin(name,''))    #jinlingguanzhenhu405ting3

#转换为小写拼音,指定分隔符为空格
print(p.get_pinyin(name,' '))    #jin ling guan zhen hu 405 ting 3

#显示汉字的一个字母的大写首字母
print(p.get_initial('金'))      #J

#显示多个汉字第一个字母的大写首字母,默认以 - 为分隔
print(p.get_initials(name))     #J-L-G-Z-H-4-0-5-T-3

#显示多个汉字第一个字母的大写首字母,指定分隔符为空
print(p.get_initials(name,''))     #JLGZH405T3

#显示多个汉字第一个字母的大写首字母,指定分隔符为空格
print(p.get_initials(name,' '))     #J L G Z H 4 0 5 T 3

二、pypinyin模块

1、安装 pypinyin 模块

pip install pypinyin

2、基本使用

from pypinyin import pinyin as py
name = '金领冠珍护405听3'
print(py(name))
#运行结果
[['jīn'], ['lǐng'], ['guān'], ['zhēn'], ['hù'], ['405'], ['tīng'], ['3']]

transform_result = py(name)
print(type(transform_result))
for i in transform_result:
    for k in i:
        print(k,end=' ')        
#运行结果
<class 'list'>
jīn lǐng guān zhēn hù 405 tīng 3 


########多音字########
from pypinyin import pinyin as py
print('"中"的拼音:',py('中',heteronym=True))
print('"中国"的拼音',py('中国',heteronym=True))
print('"金领冠珍护405听3"的拼音',py('金领冠珍护405听3',heteronym=True))
#运行结果
"中"的拼音: [['zhōng', 'zhòng']]
"中国"的拼音 [['zhōng'], ['guó']]
"金领冠珍护405听3"的拼音 [['jīn', 'jìn'], ['lǐng'], ['guān', 'guàn'], ['zhēn'], ['hù'], ['405'], ['tīng', 'yǐn', 'yí'], ['3']]


########不带音调的拼音########
from pypinyin import pinyin as py,lazy_pinyin as lpy, Style
print(lpy('中'))
print(lpy('中国'))
print(lpy('金领冠珍护405听3',style=Style.TONE))  #默认为Style.NORMAL
#运行结果
['zhong']
['zhong', 'guo']
['jīn', 'lǐng', 'guān', 'zhēn', 'hù', '405', 'tīng', '3']

以上是关于python:将汉字转换为拼音能不能输出拆开的拼音啊的主要内容,如果未能解决你的问题,请参考以下文章

python 将汉字转换为拼音

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

将汉字转换为拼音截取拼音首字母根据字母排序

将汉字转换为拼音截取拼音首字母根据字母排序

超简单 Python 汉字拼音转换工具

超简单 Python 汉字拼音转换工具