用
Python
将汉字转为拼音的第三方库。
一. xpinyin库
1. 安装
pip install xpinyin
2. 使用技巧
语法格式:
get_pinyin(chars: str, splitter: str = '-',tone_marks=None, convert: str = 'lower')
。
解释参数:
chars
:需要转换为拼音的字符串汉字。不是汉字也可以,但是不会进行转换。splitter
:每个拼音间的拼接字符。tone_marks
:主要是汉字转换成拼单是否需要带上音节。需要带上音节就加上tone_marks='numbers'
,还有一种是在拼音的最后返回是第几音节的做法tone_marks='numbers'
。如果加上了tone_marks='numbers'
这个参数就不需要加tone_marks='numbers'
了。convert
:拼音转换后是否需要拼音大小写或首字母大写返回。默认值为lower
是小写。upper
是全大写。capitalize
是首字母大写。
注意:该库默认是使用
-
号进行每个汉字的拼音区分开来的。
a. 简单使用
from xpinyin import Pinyin
# 实例拼音转换对象
p = Pinyin()
# 汉字进行拼音转换
res = p.get_pinyin(u"一切皆往事")
print(res) # yi-qie-jie-wang-shi
b. 以#号进行拼音的拼接
from xpinyin import Pinyin
# 实例拼音转换对象
p = Pinyin()
# 进行拼音转换
res = p.get_pinyin(u"一切皆往事", splitter="#")
print(res) # yi#qie#jie#wang#shi
c. 汉字转拼音后带上音节
如果要转化成带音节的拼音,需要传递参数
tone_marks="marks"
。
from xpinyin import Pinyin
# 实例拼音转换对象
p = Pinyin()
# 进行拼音转换
res = p.get_pinyin(u"一切皆往事", tone_marks='marks')
print(res) # yī-qiē-jiē-wǎng-shì
如果你不想要以
-
号进行每个拼音间的拼接的话,可以使用splitter
这个参数。值为你想要进行每个拼音间拼接的字符。
如我想拼音间拼接的字符是#
号,源码如下:
from xpinyin import Pinyin
p = Pinyin()
res = p.get_pinyin(u"一切皆往事", tone_marks='marks', splitter="#")
print(res) # yī#qiē#jiē#wǎng#shì
d. 拼音全大写
from xpinyin import Pinyin
# 实例拼音转换对象
p = Pinyin()
# 进行拼音转换
res = p.get_pinyin(u"一切皆往事", convert='upper')
print(res) # YI-QIE-JIE-WANG-SHI
e. 拼音首字母大写
from xpinyin import Pinyin
# 实例拼音转换对象
p = Pinyin()
# 进行拼音转换
res = p.get_pinyin(u"一切皆往事", convert='capitalize')
print(res) # Yi-Qie-Jie-Wang-Shi
二. pypinyin库
1. 安装
pip install pypinyin
2. 使用技巧
a. 带上音节
import pypinyin
s = pypinyin.pinyin("一切皆往事")
print(s) # [['yī'], ['qiè'], ['jiē'], ['wǎng'], ['shì']]
b. 不带音节
import pypinyin
s = pypinyin.pinyin("一切皆往事", style=pypinyin.NORMAL)
print(s) # [['yi'], ['qie'], ['jie'], ['wang'], ['shi']]