目前我的文件夹中有500多份简历,如果我想知道一些信息,比如学校,学历之类的,我需要打开每一份word去查看,太耗时间了。这个时候python需要出马了。
目标
目前类似截图中的word有600+,想简单的进行整理:
可以整理出一份excel用于导航(类似目录),可以通过excel来快速定位到所要的附件,如下图效果:
具体实现
有了目标,就具体说说如何实现的,整理思路还是比较简单的,就是遍历所有的word文件,将word中关键的信息获取到并保存到excel中。
这里列下主要用到的模块:
import xlsxwriter import subprocess import os import docx import sys import re
xlsxwriter主要用来操作excel,xlsxwriter只能用来写,效率上比xlwt要高,数据量不多,用xlwt也ok。
subprocess主要用来调用命令行,因为docx模块无法解析doc的word文件,所以在解析前将doc的文件转换成docx文件。
os主要用于遍历文件夹获取文件。
docx主要用来解析word文档。
规范下文件名
首先我们先规范下文件名称,因为在使用subprocess.call调用命令时,空格,特殊符号之类的没办法转义导致报错,所以干脆在之前就清理掉这个潜在问题。
def remove_doc_special_tag(): for filename in os.listdir(path): otherName = re.sub("[\s+\!\/_,$%^*(+\"\')]+|[+——()", "",filename) os.rename(os.path.join(path,filename),os.path.join(path,otherName))
遍历文件
之后我们就可以开始正题,遍历每个文件进行解析:
path='/Users/cavin/Desktop/files' for filename in os.listdir(path): ...具体逻辑...
这里碰到一个问题,首先是docx模块无法解析doc的word文档,由于又是使用的mac,所以也无法使用win32com模块,这个问题就比较尴尬,后来google发现可以通过命令将doc转换成docx。
这里注意下转换后的docx文件样式是丢失的,但这不影响我获取文本信息。
于是就有了这段代码,如果是doc的文件,优先转换成docx,待解析完之后再移除掉。
if filename.endswith('.doc'): subprocess.call('textutil -convert docx {0}'.format(fullname),shell=True) fullname=fullname[:-4]+".docx" sheetModel= etl_word_files(fullname)#解析文本逻辑 subprocess.call('rm {0}'.format(fullname),shell=True) #移除转换的文件
解析word文件
接下来就是解析文件了,通过docx模块很容易实现,具体的解析逻辑就不贴了,就是遍历每一行,根据一些关键字,符号来截取数据(每个简历格式基本上差不多的)
doc = docx.Document(fullname) for para in doc.paragraphs: print(para.text) ...具体解析逻辑...
填充excel
解析完的数据就可以直接填充excel了:
workbook = xlsxwriter.Workbook('report_list.xlsx') worksheet = workbook.add_worksheet('list') worksheet.write(0,0, '序号') worksheet.write(0,1, '姓名') worksheet.write(0,2, '性别') worksheet.write(0,3, '年龄') worksheet.write(0,4, '籍贯') worksheet.write(0,5, '目前所在地') worksheet.write(0,6, '学历') worksheet.write(0,7, '学校') worksheet.write(0,8, '公司') worksheet.write(0,9, '职位') worksheet.write(0,10, '文档链接')
这里主要说下文档链接的填充,由于是要给其他人的,只要保证附件和excel在同一个文件夹下,采用相对路径的方式来实现,可以使用Excel的函数HYPERLINK:
worksheet.write(index,10, '=HYPERLINK(\"./'+filename+'\",\"附件\")')
问题点
到这里,基本上可以实现相应的功能了,但不是很完美,主要是word中的格式不标准,没有很好的方式去准确获取到我要的数据,但主要的姓名学校之类的大多数都抓到了,也算减轻点任务啦。
总结
利用python还是减少了一定的重复劳动,但面对一些不标准的东东貌似还没有很好的方式。
虽然可以增加逻辑来兼容这些不标准,但显然这个付出和产出就有点不成正比了。
利用好手上的工具去提高效率才是真的,至于是傻瓜式的重复工作,还是通过代码来减少重复劳动,就看你自己怎么看啦。
python,附件
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]