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

作者:

文章目录
  • 前几天有同学在讨论家中小盆友的作业问题,说连一些拼音作业的难度已经超出了能力范围,感叹自己已经比不上现在的小学生了。听得滋滋有味的我又产生了一个大胆的想法: 使用Python自动在每个文字的上方标注拼音 预期输出示例如下:
  • 查阅一番资料后,发现一个神奇的库:pypinyin,可以轻松将汉字文本转换为拼音 先来安装pypinyin pip install pypinyin 这还不够,要将文本和拼音输出到文件,我想到了以下两条路: 1.结果写入到txt或者doc文件 2.结果写入到excel表格 仔细思考后发现第一条路很难实现拼音和汉字的连续换行以及一一对应,而通过excel表格的话能轻松标识汉字和拼音需要写入的行和列 这里使用比较熟悉的xlwt模块写入excel,先来安装 pip install xlwt 事先准备了需要转换的文本内容test_file.txt,1000+汉字,手动注音的话,那不得放个寒暑假了啊:
  • 1.使用pypin库一行代码轻松实现文本转拼音 2.使用xlwt库输出excel结果文件,将对应的拼音标注到每个汉字的上方 3.问题:若文本内容中包含连续的无法转换为拼音的字符,会造成拼音和汉字不能一一对应 到此这篇关于Python汉字转拼音pypinyin库、输出excel的xlwt库的文章就介绍到这了,更多相关Python汉字转拼音pypinyin、excel的xlwt库内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python使用pypinyin实现中文拼音转换 Python pypinyin注音库轻松丝滑实现汉字转换成拼音 Python 中拼音库 PyPinyin 用法详解 教你使用Python pypinyin库实现汉字转拼音 python中使用xlrd、xlwt操作excel表格详解 Python使用xlwt模块操作Excel的方法详解 Python xlwt设置excel单元格字体及格式 Python第三方库xlrd/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

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

      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使用pypinyin实现中文拼音转换
      • Python pypinyin注音库轻松丝滑实现汉字转换成拼音
      • Python 中拼音库 PyPinyin 用法详解
      • 教你使用Python pypinyin库实现汉字转拼音
      • python中使用xlrd、xlwt操作excel表格详解
      • Python使用xlwt模块操作Excel的方法详解
      • Python xlwt设置excel单元格字体及格式
      • Python第三方库xlrd/xlwt的安装与读写Excel表格

      站内搜索