• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 土豆服务器 | 发布时间: 2025-6-14 12:22| 查看数: 59| 评论数: 0|帖子模式

    一、为什么要搞?

    前几天有同学在讨论家中小盆友的作业问题,说连一些拼音作业的难度已经超出了能力范围,感叹自己已经比不上现在的小学生了。听得滋滋有味的我又产生了一个大胆的想法:
    使用Python自动在每个文字的上方标注拼音
    预期输出示例如下:


    二、准备如何搞?

    查阅一番资料后,发现一个神奇的库:pypinyin,可以轻松将汉字文本转换为拼音
    先来安装pypinyin
    1. pip install pypinyin
    复制代码
    这还不够,要将文本和拼音输出到文件,我想到了以下两条路:
    1.结果写入到txt或者doc文件
    2.结果写入到excel表格
    仔细思考后发现第一条路很难实现拼音和汉字的连续换行以及一一对应,而通过excel表格的话能轻松标识汉字和拼音需要写入的行和列
    这里使用比较熟悉的xlwt模块写入excel,先来安装
    1. pip install xlwt
    复制代码
    事先准备了需要转换的文本内容test_file.txt,1000+汉字,手动注音的话,那不得放个寒暑假了啊:


    三、说搞咱就搞!


    文本读取与预处理

    使用with open方法打开文本,readlines方法读取文本内容
    注意:文本内容当中包含换行符,这里做了去除处理
    1. # 文本读取与预处理
    2. file = 'test_file.txt'
    3. with open(file, 'r', encoding='utf-8') as f:
    4.     text = f.readlines()
    5.     f.close()
    6. new_text = ''.join((''.join(text)).splitlines())  # 去除文本的换行符
    7. print(new_text)
    复制代码
    运行效果:


    文本拼音获取

    一行代码搞定(导库不算哈)
    1. from pypinyin import pinyin

    2. text_pinyin = pinyin(new_text)
    3. print(text_pinyin)
    复制代码
    运行结果:


    结果excel输出

    我们阔以看到,汉字字数和拼音数量是对得上的
    1. list_length_hz = len(new_text)  # 汉字字数
    2. list_length_py = len(text_pinyin) # 拼音数量
    3. print(f"汉字:{list_length_hz}")
    4. print(f"拼音:{list_length_py}")
    复制代码
    运行结果:

    先使用xlwt建立wookbook和worksheet
    1. import xlwt

    2. new_file = 'target.xls'
    3. wb = xlwt.Workbook(encoding='utf-8')  # 新建工作簿
    4. ws = wb.add_sheet('target_sheet', cell_overwrite_ok=True)  # 新建工作表
    复制代码
    这里将汉字和拼音写入到excel的  列*行=20*max_row 的单元格中,先设置列数并根据拼音数量获取最大行数
    1. import math

    2. num_cols = 20  # 列数
    3. num_rows = math.ceil(list_length_py / 20)  # 最大行数,不足20补一行
    复制代码
    然后将汉字写入Excel工作表的奇数行
    1. for i in range(num_rows):
    2.     for j in range(num_cols):
    3.         # 获取汉字列表值,若索引超出范围则使用空字符串代替
    4.         v = '' if i * num_cols + j >= list_length_hz else new_text[i * num_cols + j]
    5.         # 将值写入单元格的奇数行中
    6.         ws.write(i*2+1, j, v)
    复制代码
    再将拼音写入Excel工作表的偶数行
    1. for i in range(num_rows):
    2.     for j in range(num_cols):
    3.         # 获取汉字列表值,若索引超出范围则使用空字符串代替
    4.         v = '' if i * num_cols + j >= list_length_py else text_pinyin[i * num_cols + j]
    5.         # 将值写入单元格的偶数行中
    6.         ws.write(i*2, j, v)
    复制代码
    最后将工作簿保存为excel
    1. wb.save(new_file)
    复制代码
    excel结果文件示例如下:


    四、搞完收工!

    1.使用pypin库一行代码轻松实现文本转拼音
    2.使用xlwt库输出excel结果文件,将对应的拼音标注到每个汉字的上方
    3.问题:若文本内容中包含连续的无法转换为拼音的字符,会造成拼音和汉字不能一一对应
    到此这篇关于Python汉字转拼音pypinyin库、输出excel的xlwt库的文章就介绍到这了,更多相关Python汉字转拼音pypinyin、excel的xlwt库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/python/339941ap6.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表