利用python处理一万份word表格简历
前言
有一天朋友A向我抱怨,他的老板要求他把几百份word填好的word表格简历信息整理到excel中,看着他一个个将姓名,年龄……从word表格里复制粘贴到excel里,边粘贴心里边暗暗诅咒着自己的boss……但毕竟新手小白,又不能违背老板的意愿说我不干了,爱咋咋地,于是过来向我求助。我说,这事情好办啊,学学python就能解决啊,简单容易上手。好了,接下来进入正题。
思路:首先针对每一份word表格进行分析
怎么才能利用python获取到word表格里面的信息,最初的想法是把word里面的表格转成网页格式,毕竟混迹爬虫浅水区多年,用正则表达式处理网页来获取信息是比较轻松的,于是想到把word转成网页格式,这么一想,整个人都疯了,几百份文件打开然后转成网页,那也有不少劳动量啊。于是在网上搜了许久,发现docx文件自己本身是压缩文件,打开压缩包之后竟然发现里面有个专门存储word里面文本的文件。
打开文件找,发现我们想要的信息全都藏在这个名为document.xml的文件里
于是基本过程就可以确定了
1. 打开docx的压缩包
2. 获取word里面的正文信息
3. 利用正则表达式匹配出我们想要的信息
4. 将信息存储到txt中(txt可以用excel打开)
5. 批量调用上述过程,完成一万份简历的提取工作
6. (检查数据是否有错误或缺失)
0x01 获取docx信息
利用python的zipfile库以及re库来处理docx压缩包里面的document.xml文件里的信息。
import zipfile
import re
def get_document(filepath):z = zipfile.ZipFile(filepath, "r")text = z.read("word/document.xml").decode("UTF-8")text = re.sub(r"<.*?>", "", text)#去除xml里的所有标记符###如果多份简历在同一个word文件里####table_list = text.split("XX简历")[1:]#依据简历标题切分每一份简历信息#return table_listreturn text
打印text的结果
自此,输出了简历中的所有相关信息
0x02 抓取各字段值
接下来根据这些相关信息抓取各个字段的值
import re
def get_field_value(text):value_list = []m = re.findall(r"姓 名(.*?)性 别", table)value_list.append(m)m = re.findall(r"性 别(.*?)学 历", table)value_list.append(m)m = re.findall(r"民 族(.*?)健康状况", table)value_list.append(m) '''此处省略其他字段匹配'''return value_list
这样就将每个字段匹配到的内容以一个列表的形式返回了
0x03 将内容写入到文件
接下来将这个列表里的内容写入到txt中
str1 = ""
for value in value_list:str1 = str1 + str(value[0]) + "\t"#每个字段值用制表符\t分隔
str1 = str1 + "\n"
with open("result.txt", "a+") as f:#将内容以追加形式写入到result.txt中f.write(str1)
以上是将一个word转成了txt
只要再对文件夹中的文件进行批量处理就ok了
0x04 批量处理完整代码
以下附上完整代码
import re
import zipfile
import os
def get_document(filepath):z = zipfile.ZipFile(filepath, "r")text = z.read("word/document.xml").decode("UTF-8")text = re.sub(r"<.*?>", "", text)#去除xml里的所有标记符###如果多份简历在同一个word文件里###table_list = text.split("XX简历")[1:]#依据简历标题切分每一份简历信息return table_listdef get_field_value(text):value_list = []m = re.findall(r"姓 名(.*?)性 别", table)value_list.append(m)m = re.findall(r"性 别(.*?)学 历", table)value_list.append(m)m = re.findall(r"民 族(.*?)健康状况", table)value_list.append(m) '''此处省略其他字段匹配'''return value_listcv_list = []
for i in os.listdir(os.getcwd()):a = os.path.splitext(os.getcwd() + "\\" + i)#获取当前目录下所有文件的文件名if a[1] == '.docx':#如果文件后缀print(os.getcwd()+"\\"+i)cv_list = cv_list + get_document(os.getcwd() + "\\" + i)#每份简历信息为一个列表元素for i in cv_list:value_list = get_field_value(i)str1 = ""for value in value_list:str1 = str1 + str(value[0]) + "\t"str1 = str1 + "\n"with open("result.txt", "a+") as f:f.write(str1)
一万份word表格简历信息转成了txt,然后用excel打开txt即可。
后记
后来,朋友A对我说,老板夸奖他会python,把这件事情做的又快又好。很快他被调到了其他部门,不再处理这些琐碎的事情,从此升职加薪,走上了”出任CEO,迎娶白富美“的康庄大道。
本集完
(为毛我还在苦逼地码python,哭)
利用python处理一万份word表格简历相关推荐
- 利用python的docx模块处理word和WPS的docx格式文件
Python docx module for Word or WPS processing 本文是通过docx把word中的表格中的某些已填好的内容提取出来,存入excel表格. 首先安装docx的p ...
- 【Python数据分析】利用Python快速对两个EXCEL表格进行内容比较并找出差异
如何快速找到两个EXCEL表格的数据差异?今天就与大家分享如何利用Python数据分析3分钟搞定,不管EXCEL表格有多少行数据,代码总是那么几行.不多说了,上案例(文末附Python数据分析案例下载 ...
- python对excel增删改查语句_利用python模拟sql语句对员工表格进行增删改查
本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...
- python对excel增删改查_利用python模拟sql语句对员工表格进行增删改查
本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 具体需求: 员工信息表程序,实现增删改查操作: 可进行模糊查询, ...
- Python实现分析pdf或者Word形式简历,并且保存到Excel中
Python实现分析当前文件夹里面所有的pdf或者Word形式简历,并且保存到Excel中 # -*- coding:utf-8 -*-#作者:公众号:湾区人工智能 #功能:实现分析pdf或者Word ...
- 利用python批量合并excel和word内的表格
1.依赖: python 3.9.7,python-docx==0.8.11,pandas==1.3.4 ,os 2.配置环境 pip install python-docx pip install ...
- python excel 转json_Python办公自动化| word 表格转excel
之前写过一篇 Python办公自动化 | 批量word报告生成工具 ,有小伙伴提出了逆向需求,即:从批量word中获取内容并写入excel,需求背景是汇总一些材料,举例:实习鉴定表.个人简历.档案等. ...
- Python实例29:利用python自动创建多个Excel表格
我们可以通过python自动创建多个命名有规律的工作簿,这样就可以提高效率,节省我们的时间.具体代码如下: 实例代码 import xlwings as xw # 导入库 app = xw.App(v ...
- python 读取 word 表格_python读取word表格
python调用com,如何完成word表格操作 word中doc这个格式的文件是微软特有格式,微软没有向外公开任何的api接口文档,只能通过微软提供的OLE组件来提其COM接口,只要你的机器上安装了 ...
最新文章
- 嵌入式linux内存使用和性能优化
- Linux下通过gettimeofday函数获取程序段执行时间
- Javascript调试之console对象,它的一些小技巧你都知道吗?
- 聚焦LS-MIMO的四大层面,浅谈5G关键技术
- 一张图看懂hadoop
- tensorflow的pb文件转化为pbtxt
- k6前级效果器怎么用_【易开EK-K6 DSP 专业 数字前级效果器 前置】价格_厂家_图片 -Hc360慧聪网...
- qt中的句柄类,实体类
- 3dmax人物模型制作全的步骤
- 标题:书号验证 2004年起,国际ISBN中心出版了《13位国际标准书号指南》。 原有10位书号前加978作为商品分类标识;校验规则也改变。 校验位的加权算法与10位ISBN的算法不同,具体算法是
- 高质量程序设计指南(笔记)
- 三角函数π/2转化_高中数学:三角函数知识点
- s5pv210的工作模式
- python学习实验报告(第十周)
- MLK | 非监督学习最强攻略
- c语言eof_C语言持续深耕
- 2021年煤气考试题及煤气模拟试题
- 中兴电信光纤猫F450获取管理员密码方法
- taglib 原理和实现[转载]
- gatling简单使用说明
热门文章
- 易特鞋店销售管理后台软件(5)
- 风讯CMS提交时出现System.Web.HttpRequestValidationException (0x80004005):错误
- java终极面试题目总结
- 联想拯救者R7000+加装SSD+原D盘信息复制分区到新SSD
- 《完美世界国际版》客户端下载
- 手机市场环境分析2022
- c#,catch(Exception ex)的ex是什么意思
- 保姆级神器 Maven,再也不用担心项目构建搞崩了
- 对Android和iOS项目中的模块结构和类结构设计的探讨
- 怎么从已有文件中挑选需要的文字重新生成新文件_Word文字处理中,如果单击“文件”选项卡中的()按钮,Word会在工作区产生新的空文档。...