python | xpinyin,一个可以将汉字转换为拼音的库

news/2025/1/16 12:25:45/

xpinyin 是一个第三方 python 库,可以将汉字(中文)转换成拼音,仅需几行代码即可。

此外,xpinyin 库还具备以下特点:

一是,xpinyin 支持多种输出格式,包括:不带声调(如:cang)、带声调(如:cáng)。

二是,可根据需求自定义拼音的输出格式,包括:输出拼音的全拼、只输出拼音的首字母、只输出拼音的声母等。

xpinyin 从安装到使用,详细教程如下。 

一、xpinyin 安装

因为 xpinyin 属于第三方库,所以使用前需要先进行安装。

直接使用 pip 进行安装,完整命令:

python">pip install xpinyin

图片

确认查看是否安装成功,可用以下命令:

python">pip show xpinyin

图片

注:对于 python 初学者来说,python 的环境配置及第三方库的安装始终是一大难点。这里建议大家在安装 python 环境时,一定要勾选配置环境变量,这样当安装第三方库时,可以直接打开 cmd ,使用 pip 命令去安装绝大多数的库,可以省掉很多的麻烦。

二、xpinyin 使用

使用 xpinyin 库时,需要先导入相关模块,并实例化一个对象

python">from xpinyin import Pinyin#实例化 Pinyin 对象
p = Pinyin()

然后,就可以根据需求,选择合适的方法将汉字转换为拼音。

重点有以下 6 种使用情况:

(一)默认情况

默认情况下,输出的拼音不带声调,且多个汉字的拼音之间分隔符为“-”,如下:​​​​​​

python">astr ='藏在初雪里的心事,会被月光照亮'
#默认情况
astr1 = p.get_pinyin(astr)
print('默认情况,不带声调且分隔符为-:\n',astr1)

输出结果为:

图片

(二)显示拼音的声调

如果想要输出的拼音显示声调,有以下两种形式。

1、标准拼音模式

如cáng,加入参数:tone_marks='marks'。

python">astr ='藏在初雪里的心事,会被月光照亮'# 标准拼音模式显示
astr1 = p.get_pinyin(astr,tone_marks='marks')
print('第一种,标准拼音声调显示:\n',astr1)

输出结果为:

图片

2、以数字代替声调

如cang2,加入参数:tone_marks='number'。​​​​​​​

python">astr ='藏在初雪里的心事,会被月光照亮'#显示声调以数字代替
astr2 = p.get_pinyin(astr,tone_marks='number')
print('第二种,以数字表示声调:\n',astr2)

输出结果为:

图片

(三)多个拼音之间的分隔符

输出显示多个汉字的拼音时,可自定义分隔符。

1、去掉默认分隔符“-”

可以去掉默认分隔符“-”,加入参数:splitter='',简单使用时 splitter 可省略,参数可直接设置为:''。​​​​​​​

python">astr ='藏在初雪里的心事,会被月光照亮'#去掉间隔符
astr1 = p.get_pinyin(astr,splitter='')
astr2 = p.get_pinyin(astr,'')
print('去掉默认分隔符-:\n',astr1)
print('去掉默认分隔符-:\n',astr2)

输出结果为:

图片

2、指定分隔符

加入参数并赋值指定的分隔符,如:splitter='/',简单使用时 splitter 可省略,参数可直接设置为:'/'。​​​​​​​

python">astr ='藏在初雪里的心事,会被月光照亮'#指定间隔符
astr1 = p.get_pinyin(astr,splitter='/')
astr2 = p.get_pinyin(astr,'/')
print('指定分隔符,如/:\n',astr1)
print('指定分隔符,如/:\n',astr2)

输出结果为:

图片

(四)获取拼音首字母

获取每个汉字拼音的首字母,使用方法:get_initials()​​​​​​​

python">astr ='藏在初雪里的心事,会被月光照亮'#获取拼音首字母
astr1 = p.get_initials(astr)
print('获取拼音首字母:\n',astr1)

输出结果为:

图片

注:每个汉字拼音首字母之间的分隔符去除和替换,与上面第 3 点是一样的用法。

(五)获取声母

获取每个汉字拼音的声母,仅在获取首字母方法 get_initials() 中加入参数:with_retroflex=True 即可。​​​​​​​

python">astr ='藏在初雪里的心事,会被月光照亮'#获取声母
astr1 = p.get_initials(astr,with_retroflex=True)
print('获取声母:\n',astr1)

输出结果为:

图片

注:每个汉字拼音的声母之间的分隔符去除和替换,与上面第 3 点是一样的用法。

(六)获取汉字的多个拼音

使用 get_pinyins() 方法可以获取多音字的多个拼音。

如,“好”的拼音包括:hǎo、hào​​​​​​​

python">astr ='好'#获取汉字的多个读音
astr1 = p.get_pinyins(astr,tone_marks='marks')
print('获取多个读音:\n',astr1)

输出结果为:

图片

注:需要注意一下的是,这里是以列表的形式返回。

以上就是 xpinyin 库将汉字转换为拼音的核心用法,可供参考。

-end-


http://www.ppmy.cn/news/1563593.html

相关文章

uniapp 发布后原生img正常,image无法显示,img与uniapp image使用区别

问题描述: 需要在本地测试和发布后图片都能正常显示,线上是把项目放在了/web目录下,使用html img src“static/images/guideArrow.png"时都能正常显示,但使用uniapp image则不行,由于image兼容性比较好&#xff0…

5套经典行业原型-含生鲜电商、旅游社交、O2O美食、汽车美容行业

近期反复有小伙伴找我,希望推荐产品资料,于是我把看过且认可的部分资料整理了一下,以后会持续分享给大家~~ 01 5套经典行业原型-含生鲜电商、旅游社交、O2O美食、汽车美容行业 目录内容介绍 流年烘焙-O2O美食-需求文档v2.docx 车蜜-O2O洗车-…

【Unity】unity3D 调用LoadSceneAsync 场景切换后比较暗 部门材质丢失

解决方法:两个场景使用同样灯光 现象 直接进入第二个场景是可以正常显示 调用LoadSceneAsync来切换后,第二个场景出现比较暗的情况 解决方法:两个场景使用同样灯光,在loading 的场景中加入灯光。 Light—Directional Light 如果…

在服务器上增加新网段IP的路由配置

在服务器上增加新网段IP的路由配置 前提条件步骤一:检查当前路由表步骤二:添加新路由步骤三:验证新路由步骤四:持久化路由配置脚本示例结论在网络管理中,路由配置是一项基本且重要的任务。它决定了数据包在网络中的传输路径。本文将详细介绍如何在服务器上增加新的路由配置…

计算机视觉算法实战——视频分析(Video Analysis)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​ ​​​​​​​​​​​​ ​​​​​ 视频分析是计算机视觉中的一个重要领域,旨在从视频数据中提取有用的信息&…

java项目启动时,执行某方法

1. J2EE项目 在Servlet类中重写init()方法,这个方法会在Servlet实例化时调用,即项目启动时调用。 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;public class MyServlet extends HttpServlet {Overridepublic void …

ThinkPHP 8的一对一关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

RPC 源码解析~Apache Dubbo

解析 RPC(远程过程调用)的源码可以帮助你深入理解其工作原理和实现细节。为了更好地进行源码解析,我们选择一个流行的 RPC 框架——Apache Dubbo 作为示例。Dubbo 是一个高性能、轻量级的开源 Java RPC 框架,广泛应用于企业级应用…