目录
安装:pip install xpinyin
相关参数
chars:要处理的文本,str splitter拼音之间的分割符,默认为-,str convert:大小写(upper全大写、capitalize首拼大写、lower全小写),默认为lower tone_marks:声调(marks符号声调、numbers数据声调、None无声调),默认为None
获取首拼
- from xpinyin import Pinyin
-
- p = Pinyin()
- text = u'九万里风鹏正举'
- print(p.get_initials(text, splitter='-', with_retroflex=True)) # 获取声母(with_retroflex=True)
- print(p.get_initials(text, splitter='-', with_retroflex=False)) # 获取首拼(with_retroflex=False)
获取完成拼音
- print(p.get_pinyin(text, tone_marks='marks', splitter=' ')) # 符号声调
- print(p.get_pinyin(text, tone_marks='numbers', splitter=' ', convert='capitalize'))
- print(p.get_pinyin(text, splitter=' ', convert='upper'))
- print(p.get_pinyin(text, splitter=' ', convert='lower'))
多音字拼音
get_pinyins()返回一个列表,对应每个字会出现的多音结果都列出来,返回一个列表。
参数n:给出每个字符所有可能的读法。组合的数量被限制为默认值为10,以避免长文本的指数爆炸。
print(p.get_pinyins(text,tone_marks='marks'))
Unicode 字符编码表中汉字Unicode编码的区间为:0x4e00~0x9fa5
- from xpinyin import Pinyin
-
-
- def get_chiness(pinyin: str = 'yi'):
- p = Pinyin()
- all_chiness = ""
- for i in range(0x4e00, 0x9fa6):
- strs = chr(i)
- ret = p.get_pinyin(strs, tone_marks=None, splitter=' ')
- if ret == pinyin:
- all_chiness += strs
- print(all_chiness)
-
-
- if __name__ == '__main__':
- get_chiness()
pypinyin比xpinyin更强大,安装:pip install pypinyin
函数参数
pinyin() style指定拼音风格,默认是 TONE风格。 errors指定如何处理没有拼音的字符。 heteronym指定是否启用多音字。 strict指定是否严格遵照《汉语拼音方案》来处理声母和韵母。 pypinyin.lazy_pinyin(hans, style=, errors='default', strict=True) style指定拼音风格,默认是 TONE风格。 errors指定如何处理没有拼音的字符。 strict指定是否严格遵照《汉语拼音方案》来处理声母和韵母
风格样式
NORMAL = 普通风格,不带声调 TONE = 标准声调风格,拼音声调在韵母第一个字母上(默认风格) TONE2 = 声调风格,即拼音声调在各个韵母之后,用数字 [1-4] 进行表示 TONE3 = 声调风格,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示 INITIALS = 声母风格,只返回各个拼音的声母部分 FIRST_LETTER = 首字母风格,只返回拼音的首字母部分 FINALS = 韵母风格,只返回各个拼音的韵母部分,不带声调 FINALS_TONE = 标准韵母风格,带声调,声调在韵母第一个字母上 FINALS_TONE2 = 韵母风格,带声调,声调在各个韵母之后,用数字 [1-4] 进行表示 FINALS_TONE3 = 韵母风格,带声调,声调在各个拼音之后,用数字 [1-4] 进行表示 BOPOMOFO = 标准汉语注音风格,带声调,阴平(第一声)不标 BOPOMOFO_FIRST = 标准汉语注音风格,仅首字母 CYRILLIC = 汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字 [1-4] 进行表示 CYRILLIC_FIRST = 汉语拼音与俄语字母对照风格,仅首字母
- import pypinyin
- from pypinyin import pinyin
-
- text = u'九万里风鹏正举'
- print(pinyin(text))
- print(pinyin(text, style=pypinyin.NORMAL)) # 不带声调
- print(pinyin(text, heteronym=True)) # 开启多音字模式
- print(pypinyin.lazy_pinyin(text))
- print(pypinyin.slug(text, separator=' ', style=pypinyin.BOPOMOFO)) # 汉字拼音模式