Python汉字转拼音pypinyin库、输出excel的xlwt库

 更新时间:2025年04月19日 14:55:50   作者:DriverWon  
本文介绍了如何使用Python的pypinyin库和xlwt库,将汉字文本转换为带有拼音标注的Excel文件,通过读取文本、获取拼音并写入Excel,实现了汉字和拼音的一一对应,同时,文章也指出了潜在的问题

一、为什么要搞?

前几天有同学在讨论家中小盆友的作业问题,说连一些拼音作业的难度已经超出了能力范围,感叹自己已经比不上现在的小学生了。听得滋滋有味的我又产生了一个大胆的想法:

使用Python自动在每个文字的上方标注拼音

预期输出示例如下:

Python实搞:自动给文本标注拼音并输出excel_excel

二、准备如何搞?

查阅一番资料后,发现一个神奇的库:pypinyin,可以轻松将汉字文本转换为拼音

先来安装pypinyin

pip install pypinyin

这还不够,要将文本和拼音输出到文件,我想到了以下两条路:

1.结果写入到txt或者doc文件

2.结果写入到excel表格

仔细思考后发现第一条路很难实现拼音和汉字的连续换行以及一一对应,而通过excel表格的话能轻松标识汉字和拼音需要写入的行和列

这里使用比较熟悉的xlwt模块写入excel,先来安装

pip install xlwt

事先准备了需要转换的文本内容test_file.txt,1000+汉字,手动注音的话,那不得放个寒暑假了啊:

Python实搞:自动给文本标注拼音并输出excel_Python_02

三、说搞咱就搞!

文本读取与预处理

使用with open方法打开文本,readlines方法读取文本内容

注意:文本内容当中包含换行符,这里做了去除处理

# 文本读取与预处理
file = 'test_file.txt'
with open(file, 'r', encoding='utf-8') as f:
    text = f.readlines()
    f.close()
new_text = ''.join((''.join(text)).splitlines())  # 去除文本的换行符
print(new_text)

运行效果:

Python实搞:自动给文本标注拼音并输出excel_pypinyin_03

文本拼音获取

一行代码搞定(导库不算哈)

from pypinyin import pinyin

text_pinyin = pinyin(new_text)
print(text_pinyin)

运行结果:

Python实搞:自动给文本标注拼音并输出excel_Python_04

结果excel输出

我们阔以看到,汉字字数和拼音数量是对得上的

list_length_hz = len(new_text)  # 汉字字数
list_length_py = len(text_pinyin) # 拼音数量
print(f"汉字:{list_length_hz}")
print(f"拼音:{list_length_py}")

运行结果:

Python实搞:自动给文本标注拼音并输出excel_excel_05

先使用xlwt建立wookbook和worksheet

import xlwt

new_file = 'target.xls'
wb = xlwt.Workbook(encoding='utf-8')  # 新建工作簿
ws = wb.add_sheet('target_sheet', cell_overwrite_ok=True)  # 新建工作表

这里将汉字和拼音写入到excel的  列*行=20*max_row 的单元格中,先设置列数并根据拼音数量获取最大行数

import math

num_cols = 20  # 列数
num_rows = math.ceil(list_length_py / 20)  # 最大行数,不足20补一行

然后将汉字写入Excel工作表的奇数行

for i in range(num_rows):
    for j in range(num_cols):
        # 获取汉字列表值,若索引超出范围则使用空字符串代替
        v = '' if i * num_cols + j >= list_length_hz else new_text[i * num_cols + j]
        # 将值写入单元格的奇数行中
        ws.write(i*2+1, j, v)

再将拼音写入Excel工作表的偶数行

for i in range(num_rows):
    for j in range(num_cols):
        # 获取汉字列表值,若索引超出范围则使用空字符串代替
        v = '' if i * num_cols + j >= list_length_py else text_pinyin[i * num_cols + j]
        # 将值写入单元格的偶数行中
        ws.write(i*2, j, v)

最后将工作簿保存为excel

wb.save(new_file)

excel结果文件示例如下:

Python实搞:自动给文本标注拼音并输出excel_excel_06

四、搞完收工!

1.使用pypin库一行代码轻松实现文本转拼音

2.使用xlwt库输出excel结果文件,将对应的拼音标注到每个汉字的上方

3.问题:若文本内容中包含连续的无法转换为拼音的字符,会造成拼音和汉字不能一一对应

到此这篇关于Python汉字转拼音pypinyin库、输出excel的xlwt库的文章就介绍到这了,更多相关Python汉字转拼音pypinyin、excel的xlwt库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python数据结构之递归方法详解

    Python数据结构之递归方法详解

    这篇文章主要为大家介绍了递归的基本概念以及如何构建递归程序。通过本章的学习,大家可以理解递归的基本概念,了解递归背后蕴含的编程思想以及掌握构建递归程序的方法,需要的可以参考一下
    2022-04-04
  • Python 将RGB图像转换为Pytho灰度图像的实例

    Python 将RGB图像转换为Pytho灰度图像的实例

    下面小编就为大家带来一篇Python 将RGB图像转换为Pytho灰度图像的实例。具有很好的参考价值。希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • 给ubuntu18安装python3.7的详细教程

    给ubuntu18安装python3.7的详细教程

    这篇文章主要介绍了给ubuntu18安装python3.7的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • python学习之panda数据分析核心支持库

    python学习之panda数据分析核心支持库

    这篇文章主要给大家介绍了关于python学习之panda数据分析核心支持库的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • python直接获取API传递回来的参数方法

    python直接获取API传递回来的参数方法

    今天小编就为大家分享一篇python直接获取API传递回来的参数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 35个Python编程小技巧

    35个Python编程小技巧

    从我开始学习python的时候,我就开始自己总结一个python小技巧的集合。后来当我什么时候在Stack Overflow或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!,当时我会努力的自己尝试一下这段代码,直到我懂了它的整体思路以后,我就把这段代码加到我的集合里
    2014-04-04
  • python对数组进行排序,并输出排序后对应的索引值方式

    python对数组进行排序,并输出排序后对应的索引值方式

    今天小编就为大家分享一篇python对数组进行排序,并输出排序后对应的索引值方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python3.10安装图文教程

    Python3.10安装图文教程

    本文主要介绍了Python3.10安装图文教程,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • python+PyQt5 左右声道测试源代码

    python+PyQt5 左右声道测试源代码

    这篇文章主要介绍了python+PyQt5 左右声道测试源代码,左声道,人机交互测试,点击右边听到的对应序号按钮,对python左右声道测试感兴趣的朋友一起看看吧
    2024-02-02
  • Python读写文件模式和文件对象方法实例详解

    Python读写文件模式和文件对象方法实例详解

    这篇文章主要介绍了Python读写文件模式和文件对象方法,结合实例形式详细分析了Python文件操作常用技巧与相关注意事项,需要的朋友可以参考下
    2019-09-09

最新评论