背景: 最近在学习五笔,但是对于一个小白来说,在面对大量的汉字的情况下,没办法知道一个个字怎么用五笔打出来,几个就算了,但成百上千个,总不能一个个去查吧,那一天时间都花在了查上,为了方便去记忆学习,就写了个Python程序来对汉字进行批量的转换,再慢慢的去学习。

目的: 将word中的字,转换成excel文件,包含源字、五笔简码,即使word中有上万个字,也仅需几秒完成所有汉字的转换,达到一劳永逸的结果。

最终效果:

使用到的Python库:

pywubi -> 将汉字转换为五笔
docx -> 处理word文件
openpyxl -> 处理Excel文件

安装:

pip3 install pywubi
pip3 install docx
pip3 install openpyxl

五笔示例:

from pywubi import wubi
print(wubi('我'))>>>['trnt']# 返回汉字的所有可能的五笔编码
print(wubi('我',multicode=True)) >>>[['trnt', 'trn', 'q']]

有了以上的示例,那就简单了,想要最简码,只需要处理下所有可能的五笔编码,取最短结果,然后读取Word文件,输出Excel文件,格式再美化一下即可。

源码:

from pywubi import wubi
import time
import docx
import os
import openpyxl
start_time = time.time()# 处理文字最简码
def hanToWuBi(str):l = len(str[0][0])ans = str[0][0]for s in str[0]:if len(s) < l:l = len(s)ans = [s, len(s)] #最简码、长度return ansfile=docx.Document('字库.docx')d_ziku = {}
for i in file.paragraphs: # 读取Wold中的文字txt = i.textfor t in txt: # 遍历转换d_ziku[t] = [hanToWuBi(wubi(t,multicode=True))[0].upper(),hanToWuBi(wubi(t,multicode=True))[1]]d_wubi_1 = {} # 一级简码字典
d_wubi_2 = {} # 二级简码字典
d_wubi_3 = {} # 三级简码字典
d_wubi_4 = {} # 四级简码字典
for key in d_ziku.keys():if d_ziku[key][1] == 1:d_wubi_1[key] = d_ziku[key][0]elif d_ziku[key][1] == 2:d_wubi_2[key] = d_ziku[key][0]elif d_ziku[key][1] == 3:d_wubi_3[key] = d_ziku[key][0]elif d_ziku[key][1] == 4:d_wubi_4[key] = d_ziku[key][0]arr = []
v = []
indexArr = 1
for key in d_wubi_1.keys():if indexArr % 4 != 0: #4个一行v = v + [key,d_wubi_1[key]]indexArr += 1else:v = v + [key, d_wubi_1[key]]arr.append(v)indexArr = 1v = []
arr.append(v)
arr.append(['','','','','','','',''])indexArr = 1
v = []
for key in d_wubi_2.keys():if indexArr % 4 != 0:v = v + [key,d_wubi_2[key]]indexArr += 1else:v = v + [key, d_wubi_2[key]]arr.append(v)indexArr = 1v = []
arr.append(v)
arr.append(['','','','','','','',''])
v = []
indexArr = 1
for key in d_wubi_3.keys():if indexArr % 4 != 0:v = v + [key,d_wubi_3[key]]indexArr += 1else:v = v + [key, d_wubi_3[key]]arr.append(v)indexArr = 1v = []
arr.append(v)
arr.append(['','','','','','','',''])v = []
indexArr = 1
for key in d_wubi_4.keys():if indexArr % 4 != 0:v = v + [key,d_wubi_4[key]]indexArr += 1else:v = v + [key, d_wubi_4[key]]arr.append(v)indexArr = 1v = []
arr.append(v)
arr.append(['','','','','','','',''])# 将结果输出到Excel中
wb = openpyxl.load_workbook('字库.xlsx',data_only=True)
ws = wb.worksheets[0]
for x in arr:ws.append(x)wb.save('字库结果-排序版.xlsx')end_time = time.time()
all_time = end_time - start_time
print('共执行:%s 秒' % all_time)

Python 批量汉字转五笔,Word输出为Excel相关推荐

  1. 用python画小鸭,Python 处理输入法字库(五笔极点字库转小鸭字库)

    Python 处理输入法字库(五笔极点字库转小鸭字库) Python 处理输入法字库(五笔极点字库转小鸭字库) 一直都是用的小鸭五笔,091新字库是极点格式的,刚开始懒得动,直接用极点五笔了,用了一段 ...

  2. Java 中文转拼音/汉字转拼音, 中文转五笔/汉字转五笔, 下载字典!

    Java 中文转拼音/汉字转拼音, 中文转五笔/汉字转五笔, 下载字典! 源码 CharacterElement.java 源码 Dict.java 输出拼音 输出五笔 输出全部 字典下载地址 源码 ...

  3. APISpace 汉字转五笔API

    五笔的好处 重码的很少,选取字的时候快,所以打字的速度就很快 不认识的字也能打出来 最近在 APISpace 上面看到了 汉字转五笔API,在这里分享给大家,看看大家有没有这方面的需求,可以帮助到你们 ...

  4. Python 处理输入法字库(五笔极点字库转小鸭字库)

    一直都是用的小鸭五笔,091新字库是极点格式的,刚开始懒得动,直接用极点五笔了,用了一段时间碰到很多问题.其中最坑的是. 在tkinter Gui 里极点输入不能退格,一退格就乱码( )  ,我以为是 ...

  5. 使用python批量提取txt中的数据并写入excel

    本人是编程小白,同时也是一名准毕业研究生,在处理众多数据时总是要花很多时间来做重复的工作以提取出需要的数据,让我十分头疼.我无法忍受这种低效的工作,于是便开始尝试使用Python进行编程来批量处理数据 ...

  6. python批量处理PDF文档,输出自定义关键词的出现次数

    目录 序言 函数模块介绍 对文件进行批量重命名 将PDF转化为txt 删除txt中的换行符 添加自定义词语 分词与词频统计 主函数 本地文件结构 全部代码 结果预览 序言 做这个的背景是研究生导师要批 ...

  7. 利用python批量将office格式(word、PPT、Excel)转换为PDF

    一.python的安装 python 3 10 5的安装 二.python编辑器的安装 在这里我使用的是VS code 1.62.3 三.pywin32库的安装 在CMD里面使用pip install ...

  8. python打印汉字报错_python中文输出报错解决方案(实例教程)

    对于刚刚开始接触python这门语言的人来说,可能会对于如何使用这门语言来进行编程会存在有一定的疑惑.如何使用中文来进行程序的编写,会不会与英文的编写有不一样的地方?今天我们就来看一下在python中 ...

  9. Python批量OCR日语文字图片并输出内容至文本文档~(调用百度OCRapi)

    如题~对应文字游戏录屏制作字幕的第二模块 from aip import AipOcr import os import time''' Author: AleryXiao Date: 2022.10 ...

  10. Python批量识别PDF文件格式发票信息并生成Excel表格

    最近有同学提问说,能不能讲一讲识别发票图片并整理数据到Excel里的方法.今天我们就针对这样的实际需求,分享一个基于 PDF 的 Python 办公自动化的解决案例. 先来看看需求. 需求描述 在某个 ...

最新文章

  1. 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 在 Flutter 端实现 MethodChannel 通信 )
  2. Crawler Index Page
  3. 《系统集成项目管理工程师》必背100个知识点-18项目管理计划的ITTO
  4. 使用diskpart命令修复U盘分区
  5. Python中的抽象类和抽象方法
  6. java 正则 标签内容_java正则匹配html片段,并取得标签中的内容
  7. Xcode 9中去除Block警告
  8. JAVA并发包内容_java并发包
  9. 报错ClassNotFoundException:org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties
  10. 常用的人脸表情数据库简介及其论文出处
  11. Java析构函数构造函数_C++ string构造函数和析构函数详解
  12. Android CameraX的基本使用
  13. 只有360浏览器能打开别的都打不开
  14. ubuntu 16.04+Titan Xp + Cuda 9.0 + Cudnn 7.0 + Caffe
  15. C#获取汉子对应的拼音(首字母大写或小写,全拼音含首个字母大写)
  16. 【大数据】Hadoop 体系(四)
  17. 【100%通过率】华为OD机试真题 Python 实现【核酸最快检测效率】【2022.11 Q4 新题】
  18. (十四)STM32——外部中断(EXTI)
  19. 一个ntohs函数的实现
  20. 问题记录:is not eligible for getting processed by all BeanPostProcessors

热门文章

  1. 病毒分析三:勒索病毒分析
  2. 计算机固态加机械硬盘,在台式机中添加固态/机械硬盘驱动器,让我与这篇文章一起教你...
  3. 爬点今日头条街拍美女。。。
  4. win8、server 2012 清除winsxs文件夹
  5. CAD、mapgis、excel转换为coreldraw技巧方法-来自《地球科学》姚戈
  6. Oracle数据库服务重启方法
  7. MMKV 组件-快速丶读丶查丶写的sp
  8. android monkey,Android Monkey搭建 你不用了解的
  9. MFSPV: A Multi-Factor Secured and Lightweight Privacy-Preserving Authentication Schem
  10. Pollard’s rho 算法解大数质因子问题