用
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']]
