python 操作word文档,python排版word文档
本文将利用Python自动化做一个实践练习,即阅读简历筛选出符合招聘要求的简历。文章中的示例代码有详细的讲解,感兴趣的朋友可以跟边肖一起学习。
00-1010简历筛选定义ReadDoc类用于读取word文件定义。search_word功能用于筛选word文件的内容,以满足所需的简历。在前一章,我们练习了通过表格和段落获取word文件的信息后,我们来做一个实际的练习。看简历筛选出符合招聘要求的简历。接下来,我们来看看这个小功能是怎么实现的。
目录
相关简历信息如下:
简历筛选
已知条件:
寻找包含指定关键词的简历(比如Python,Java)。
实施思路:
批量读取每一个word文件(通过glob获取word信息),获取它们所有可读的内容,通过关键字过滤得到目标简历地址。
这里需要注意的一点是,并不是所有的‘简历’都是以段落的形式呈现的。比如从‘猎聘’下载的简历是‘表格’的形式,从‘老板’下载的是‘段落’的形式。读到这里,我们需要注意的是,我们做的演示文稿脚本练习是以‘表格’的形式出现的。
在这里,我们可以具体定义一个 ReadDoc 类,它定义了两个分别用于读取段落和表格的函数。
实际案例脚本如下:
#编码:utf-8
从docx导入文档
ClassReadDoc (object) 3360 #定义了一个ReadDoc来读取word文件。
Def __init__(self,path): #构造函数默认传入读取word文件的路径。
self.doc=文档(路径)
self.p_text=
self.table_text=
self.get_para()
self.get_table()
DEF _ PARA (self) : #定义get_para函数用来读取word文档的段落。
对于self . doc . paragraphs 3360中的p
Self.p_text=p.text \n #将阅读的段落内容换行。
打印(self.p_text)
Get_table (self) 3360 #定义Get_table函数,循环读取表的内容。
用于self.doc.tables:中的表
对于table.rows:中的行
_cell_str= #获取每一行的完整信息
对于row.cells:中的单元格
_cell_str=cell.text , #每行由,分隔
Self.table_text=_cell_str \n #读取的表格内容换行。
打印(self.table_text)
if __name__==__main__:
path=glob . OS . path . join(glob . OS . getcwd(), test _ file/resume 1.docx )
doc=ReadDoc(路径)
打印(文档)
看看ReadDoc类的运行结果。
定义 ReadDoc 类用以读取 word 文件
好了,上面简历的wor已经看完了。
d 文档,接下来我们要将读取到的内容通过帅选关键字信息的方式,过滤出包含有关键字的简历。
实操案例脚本如下:
# coding:utf-8import glob
from docx import Document
class ReadDoc(object): # 定义一个 ReadDoc ,用以读取 word 文件
def __init__(self, path): # 构造函数默认传入读取 word 文件的路径
self.doc = Document(path)
self.p_text =
self.table_text =
self.get_para()
self.get_table()
def get_para(self): # 定义 get_para 函数用以读取 word 文件的段落
for p in self.doc.paragraphs:
self.p_text += p.text + \n # 读取的段落内容进行换行
# print(self.p_text) # 调试打印输出 word 文件的段落内容
def get_table(self): # 定义 get_table 函数循环读取表格内容
for table in self.doc.tables:
for row in table.rows:
_cell_str = # 获取每一行的完整信息
for cell in row.cells:
_cell_str += cell.text + , # 每一行加一个 "," 隔开
self.table_text += _cell_str + \n # 读取的表格内容进行换行
# print(self.table_text) # 调试打印输出 word 文件的表格内容
def search_word(path, targets): # 定义 search_word 用以筛选符合内容的简历;传入 path 与 targets(targets 为列表)
result = glob.glob(path)
final_result = [] # 定义一个空列表,用以后续存储文件的信息
for i in result: # for 循环获取 result 内容
isuse = True # 是否可用
if glob.os.path.isfile(i): # 判断是否是文件
if i.endswith(.docx): # 判断文件后缀是否是 "docx" ,若是,则利用 ReadDoc类 实例化该文件对象
doc = ReadDoc(i)
p_text = doc.p_text # 获取 word 文件内容
table_text = doc.table_text
all_text = p_text + table_text
for target in targets: # for 循环判断关键字信息内容是否存在
if target not in all_text:
isuse = False
break
if not isuse:
continue
final_result.append(i)
return final_result
if __name__ == __main__:
path = glob.os.path.join(glob.os.getcwd(), *)
result = search_word(path, [python, golang, react, 埋点]) # 埋点是为了演示效果,故意在 "简历1.docx" 加上的
print(result)
运行结果如下:
到此这篇关于Python Word文件自动化实战之简历筛选的文章就介绍到这了,更多相关Python简历筛选内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。