python将汉字转为拼音字母 Python汉字转拼音pypinyin库、输出e

python将汉字转为拼音字母 Python汉字转拼音pypinyin库、输出e

目录
  • 一、为什么要搞?
  • 二、准备怎样搞?
  • 三、说搞咱就搞!
    • 文本读取与预处理
    • 文本拼音获取
    • 结局excel输出
  • 四、搞完收工!

    一、为什么要搞?

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

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

    预期输出示例如下:

    二、准备怎样搞?

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

    先来安装pypinyin

    pip install pypinyin

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

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

    2.结局写入到excel表格

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

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

    pip install xlwt

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

    三、说搞咱就搞!

    文本读取与预处理

    使用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)

    运行效果:

    文本拼音获取

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

    from pypinyin import pinyintext_pinyin = pinyin(new_text)print(text_pinyin)

    运行结局:

    结局excel输出

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

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

    运行结局:

    先使用xlwt建立wookbook和worksheet

    import xlwtnew_file = ‘target.xls’wb = xlwt.Workbook(encoding=’utf-8’) 新建职业簿ws = wb.add_sheet(‘target_sheet’, cell_overwrite_ok=True) 新建职业表

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

    import mathnum_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结局文件示例如下:

    四、搞完收工!

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

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

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

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

    无论兄弟们可能感兴趣的文章:

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