我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何用python处理一万份word表格简历操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何用python处理一万份word表格简历操作

本篇内容介绍了“如何用python处理一万份word表格简历操作”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

前言

有一天朋友A向我抱怨,他的老板要求他把几百份word填好的word表格简历信息整理到excel中,看着他一个个将姓名,年龄……从word表格里复制粘贴到excel里,边粘贴心里边暗暗诅咒着自己的boss……但毕竟新手小白,又不能违背老板的意愿说我不干了,爱咋咋地,于是过来向我求助。我说,这事情好办啊,学学python就能解决啊,简单容易上手。好了,接下来进入正题。

思路:首先针对每一份word表格进行分析

如何用python处理一万份word表格简历操作

怎么才能利用python获取到word表格里面的信息,最初的想法是把word里面的表格转成网页格式,毕竟混迹爬虫浅水区多年,用正则表达式处理网页来获取信息是比较轻松的,于是想到把word转成网页格式,这么一想,整个人都疯了,几百份文件打开然后转成网页,那也有不少劳动量啊。于是在网上搜了许久,发现docx文件自己本身是压缩文件,打开压缩包之后竟然发现里面有个专门存储word里面文本的文件。

如何用python处理一万份word表格简历操作

打开文件找,发现我们想要的信息全都藏在这个名为document.xml的文件里

如何用python处理一万份word表格简历操作

于是基本过程就可以确定了

打开docx的压缩包

获取word里面的正文信息

利用正则表达式匹配出我们想要的信息

将信息存储到txt中(txt可以用excel打开)

批量调用上述过程,完成一万份简历的提取工作

(检查数据是否有错误或缺失)

0x01 获取docx信息

利用python的zipfile库以及re库来处理docx压缩包里面的document.xml文件里的信息。

import zipfileimport redef 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_list  return text

打印text的结果

如何用python处理一万份word表格简历操作

自此,输出了简历中的所有相关信息

0x02 抓取各字段值

接下来根据这些相关信息抓取各个字段的值

import redef 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 reimport zipfileimport osdef 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即可。

补充:python word表格一些操作

数据格式(datas): 列表套列表

aa =[ [1,2,3,4,5],[6,7,8,9],[]…]
import osimport requestsimport jsonimport datetimefrom docx import Documentfrom docx.shared import Inches, Pt, Cmfrom docx.oxml.ns import qnfrom docx.enum.text import WD_PARAGRAPH_ALIGNMENTdef create_insert_word_table(datas, stday, etday, s):  """创建word表格以及插入数据"""  doc = Document()  doc.styles['Normal'].font.name = 'Calibri' # 是用来设置当文字是西文时的字体,  doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') # 是用来设置当文字是中文时的字体  # doc.styles['Normal'].font.size = Pt(14) # 设置所有文字字体大小为14  distance = Inches(0.5)  sec = doc.sections[0] # sections对应文档中的“节”  sec.left_margin = distance # 以下依次设置左、右、上、下页面边距  sec.right_margin = distance  sec.top_margin = distance  sec.bottom_margin = distance  sec.page_width = Inches(11.7) # 设置页面宽度  # sec.page_height = Inches(9) # 设置页面高度  # doc.add_heading() # 设置标题,但是不符合我的条件,只能试用下方p.add_run('我是文字')  p = doc.add_paragraph() # 添加段落  p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置中央对齐  run = p.add_run('我是文字')  run.font.size = Pt(22)  doc.add_paragraph() # 添加空段落  # 添加表格  table = doc.add_table(rows=1, cols=10, style='Table Grid')  table.style.name = 'Table Grid'  table.style.font.size = Pt(14)  table.rows[0].height = Cm(20)  title = table.rows[0].cells  title[0].text = '姓名'  title[1].text = '1'  title[2].text = '2'  title[3].text = '3'  title[4].text = '4'  title[5].text = '5'  title[6].text = '6 '  title[7].text = '7'  title[8].text = '8'  title[9].text = '9'  for i in range(len(datas)):    cels = table.add_row().cells    for j in range(len(datas[i])):      # cels[j].text = str(datas[i][j])      p = cels[j].paragraphs[0]      p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 设置中央对齐      p.add_run(str(datas[i][j]))      ph_format = p.paragraph_format      # ph_format.space_before = Pt(10) # 设置段前间距      # ph_format.space_after = Pt(12) # 设置段后间距      ph_format.line_spacing = Pt(40) # 设置行间距  doc.save('./files/项目总结.docx')

生成示例

如何用python处理一万份word表格简历操作

可能出现的错误,[Errno 13] Permission denied: ‘./files/项目进展总结.docx'

是因为你打开文件未关闭,操作不了,关闭他就好了

“如何用python处理一万份word表格简历操作”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何用python处理一万份word表格简历操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何用python处理一万份word表格简历操作

本篇内容介绍了“如何用python处理一万份word表格简历操作”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言有一天朋友A向我抱怨,他的
2023-06-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录