Python实现分析当前文件夹里面所有的pdf或者Word形式简历,并且保存到Excel中

# -*- coding:utf-8 -*-#作者:公众号:湾区人工智能
#功能:实现分析pdf或者Word形式简历,并且保存到Excel中
#时间:2018年import pdfplumber #解析pdf文件
from openpyxl import Workbook #读写Excel的文件class Pdf:# 解析:按照文字页边距判断级别(标题或内容)def parse(self, path):targets = {} #保存结果,key是简历左侧内容,value是简历右侧内容。pdf = pdfplumber.open(path)for page in pdf.pages: words = page.extract_words(x_tolerance = 5) #两页,两个列表distance = [int(word['x0']) for word in words] #对所有x0取整数,两个列表print(distance)min_dis = min(distance) #min 68left_top = None #简历左侧topleft_text = None #简历左侧textright_top = 0 #简历右侧高度x_dis = 5 #简历左右内容距离y_dis = 3 #同一行高度差在3以内for word in words:x0, top = word['x0'], word['top']#print(x0, top)text = word['text']if abs(x0 - min_dis) < x_dis: #主要通过距离区分key 和value部分,这里求出key部分内容targets[text] = '' left_text = text #简历左侧内容left_top = top #简历左侧topelif left_top is not None and left_text is not None:if abs(left_top - top) < y_dis: #在同一行内容相加targets[left_text] += textelif abs(right_top - top) < y_dis: #简历右侧同一高度添加到一起targets[left_text] += ' ' + text #保证右侧内容能够放在一行,例如:硕士论文课题: „Tribologische Untersuchung strukturierterelse:right_top = toptargets[left_text] += '\n' + text #保证右侧一个内容块的内容要添加,而不是只添加右侧第一行内容return targets# 保存def save(self, targets, out_path, sheet_name='targets'):wb = Workbook()ws = wb.activews.title = sheet_namews.append(list(targets.keys()))ws.append(list(targets.values()))wb.save(out_path)import docx
from docx import Document #导入库
from openpyxl import Workbook #读写Excel的文件class Docx:def parse(self, path):document = Document(path) #读入文件tables = document.tables #获取文件中的表格集#print(len(tables))table = tables[0]#获取文件中的第一个表格targets = {}for i in range(len(table.rows)):#循环读取表格数据targets[table.cell(i,0).text] = table.cell(i,1).text return targets# 保存def save(self, targets, out_path, sheet_name='targets'):wb = Workbook()ws = wb.activews.title = sheet_namews.append(list(targets.keys()))ws.append(list(targets.values()))wb.save(out_path)# 主函数入口
import os
filenames = os.listdir(os.getcwd()) #all the filenames in the current folder
for filename in filenames:#print(filename)if '.docx' in filename:      obj_docx = Docx() path_docx = filename #文件路径out_path = path_docx.strip('.docx') + '.xlsx'print(out_path)docx_targets = obj_docx.parse(path_docx)obj_docx.save(docx_targets, out_path)if '.pdf' in filename:obj_pdf = Pdf()path_pdf = filename #文件路径out_path = path_pdf.strip('.pdf') + '.xlsx'print(out_path)pdf_targets = obj_pdf.parse(path_pdf)obj_pdf.save(pdf_targets, out_path)'''
Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比
pdfminer 对于表格的处理非常的不友好,能提取出文字,但是没有格式:
tabula 是专门用来提取PDF表格数据的,同时支持PDF导出为CSV、Excel格式,但是这工具是用 java 写的,依赖 java7/8。tabula-py 就是对它做了一层 python 的封装,所以也依赖 java7/8。
pdfplumber 是按页来处理 pdf 的,可以获得页面的所有文字,并且提供的单独的方法用于提取表格。https://github.com/jsvine/pdfplumberPython解析图片文字from PIL import Image
import pytesseract
#上面都是导包,只需要下面这一行就能实现图片文字识别
text=pytesseract.image_to_string(Image.open('denggao.jpeg'),lang='chi_sim')
print(text)①安装PIL:pip install Pillow(之前的博客中有写过)②安装pytesser3:pip install pytesser3③安装pytesseract:pip install pytesseract④安装autopy3:
#2018-12-15 003810 December Saturday the 50 week, the 349 day SZ
pdfextractor
pdf2excel
python 解析pdf 文件
阿里云简历解析
https://edu.aliyun.com/certification/clda07碰到的第一个麻烦:
耗费我大半天时间
用代码解析我的pdf,用WPS生成的,无论如何都没有结果
用同样代码解析别人的pdf,包括论文和简历,都没有问题
内容创造者:
Microsoft® Word 2010
WPS Office Alpha 生成的pdf无法破解,PDF必须遵守标准的Adobe规范第二个麻烦:
生成的TXT文件,姓名和后面的内容分布在两行了尝试的库:
PDFMiner
pdfplumber''''''
words两列内容,
每页是一列内容;每个列表由无数个字典组成,每个字典由一些key,value对组成;简历里面的每个内容都会有一个字典包括,字典指明了这个内容的前后左右页边距;字典里text对应的value就是pdf内容了,提取出来就行。
x0是text内容左侧距离左边的距离,x1是text内容右侧距离左边的距离;如何保证把左侧放在表头,右侧放在表头下面呢?----------', 'valid': True}]
运行结束!
[Finished in 0.9s]
'''

Python实现分析pdf或者Word形式简历,并且保存到Excel中相关推荐

  1. Python爬取中国大学排名,并且保存到excel中

    前言 以下文章来源于数据分析和Python ,作者冈坂日川 今天发的是python爬虫爬取中国大学排名,并且保存到excel中,当然这个代码很简单,我用了半小时就写完了,我的整体框架非常清晰,可以直接 ...

  2. python提取pdf表格数据并保存到excel中

    pdfplumber操作pdf文件 python开源库pdfplumber,可以较为方便地获取pdf的各种信息,包含pdf的基本信息(作者.创建时间.修改时间-)及表格.文本.图片等信息,基本可以满足 ...

  3. 自动提取word文本,并保存到excel

    利用python提取word中信息,并保存到excel 今天突然接到一个小任务,是需要整理好公司同事写的论文,论文的格式是固定的,需要提取论文名称,作者这两个关键信息并保存到excel中.论文的固定格 ...

  4. python提取txt数据到excel_python 读取txt中每行数据,并且保存到excel中的实例

    使用xlwt读取txt文件内容,并且写入到excel中,代码如下,已经加了注释. 代码简单,具体代码如下: # coding=utf-8 ''' main function:主要实现把txt中的每行数 ...

  5. python爬取开源众包大厅多页任务信息保存到excel

    python爬取开源众包大厅多页任务信息保存到excel python版本:py3.5 希望能给大家一些帮助,欢迎加好友讨论微信:18301618273 源码走起: #!/usr/bin/env py ...

  6. python逐行读取txt写入excel_python 读取txt中每行数据,并且保存到excel中的实例

    使用xlwt读取txt文件内容,并且写入到excel中,代码如下,已经加了注释. 代码简单,具体代码如下: # coding=utf-8 ''' main function:主要实现把txt中的每行数 ...

  7. 【Python】Python提取word表格,并保存在excel中

    需求:一些常用的对word的操作和提取word的表格,并保存在excel中 pip install python-docx from docx import Document from openpyx ...

  8. Python |(爬虫 )爬取当当网书籍信息存到Excel中

    文献检索作业,小白也很无奈.还好有学霸同学的可以借鉴. 一.任务 获取当当网上至少300本书[均为某类书,如Linux相关的书籍,或C++相关的书籍]的信息,包括书名,网址,价格,作者,并存在exce ...

  9. python数据采集 爬虫 生意宝_Python爬虫实战 :批量采集股票数据,并保存到Excel中...

    小编说:通过本文,读者可以掌握分析网页的技巧.Python编写网络程序的方法.Excel的操作,以及正则表达式的使用.这些都是爬虫项目中必备的知识和技能.本文选自<Python带我起飞>. ...

最新文章

  1. JavaScript中变量的相互引用
  2. Linux中rsync备份数据使用实例
  3. Session与request的使用
  4. Robot Framework Webdriver For Firefox FQA
  5. linux 服务器 iptables 防止arp病毒,让Linux系统有效防御ARP攻击的实用技巧
  6. 线性复杂度的素数筛选法
  7. zabbix安装与使用
  8. bootstrap清除拟态框内添加新HTML再打开时会有缓存现象
  9. 学习Spring Boot:(十八)Spring Boot 中session共享
  10. 20200729:力扣199周周赛题解(下)
  11. Spring 2 和 JPA 简介
  12. [Android]Cygwin使用及NDK编译方法
  13. python中多维数组的计算_计算python中多维数组中数组的出现次数
  14. oracle卸载步骤图解,Oracle详细卸载步骤
  15. 30岁了还可以学java吗_30岁还能零基础学Java吗?
  16. 计算机打印机驱动f4200,惠普HP Deskjet F4238 多功能一体机驱动惠普HP Deskjet F4238 多功能一体机驱动...
  17. LSD_SLAM 编译、安装到运行demo
  18. 平面设计中负空间的意思是什么?如何设计?
  19. 车载播放器 android,KX万能播放器
  20. centos虚拟机桥接网络配置服务器,CentOS7虚拟机桥接网络配置

热门文章

  1. 协程是什么?怎么来的?它有什么作用?
  2. 《Reids 设计与实现》第十三章 Sentinel
  3. 力扣645.错误的集合
  4. 操作系统概述 操作系统第一章知识点归纳总结
  5. java堆栈信息查看,以及JVM性能查看工具-jconsole+jmap
  6. Dapper在.Net中的使用(二)
  7. 代码排版工具Artistic Style的使用(原创)
  8. python * args和** kwargs的用法
  9. 如何查看npm配置?
  10. 关于解决Python中requests模块在PyCharm工具中导入问题