用python 将PDF中的表格转化为Excel
这几天想统计一下《中国人文社会科学期刊 AMI 综合评价报告(2018 年):A 刊评价报告》中的期刊,但是只找到了该报告的PDF版,对于表格的编辑不太方便,于是想到用Python将表格转成Excel格式。
看过别人写的博客,发现Python解析PDF有以下四种方式:
-pdfminer:擅长文字的解析,把表格解析成普通的文本,没有格式;
-pdf2html:把pdf解析成html,但html的标签并没有规律,解析一个表格还可以,多个表格的话不太好提取;
-tabula:对于简单的表格,即单元格中没有换行的,表头表尾形式不复杂的,使用比较方便。但是电脑需要Java环境;
-pdfplumber:是一个可以处理pdf格式信息的库。可以查找关于每个文本字符、矩阵、和行的详细信息,也可以对表格进行提取并进行可视化调试。
本文采用pdfplumber库读取PDF中的表格,运行环境:Python3.5.2,Anaconda4.2.0。首先简单介绍一下pdfplumber库:
-pdfplumber.pdf中包含了.metadata和.pages两个属性:
.metadata是一个包含pdf信息的字典。
.pages是一个包含页面信息的列表。
-pdfplumber.page的类中包含的主要的属性:
.page_number 页码。
.width 页面宽度。
.height 页面高度。
.objects/.chars/.lines/.rects 这些属性中每一个都是一个列表,每个列表都包含一个字典,每个字典用于说明页面中的对象信息, 包括直线,字符, 方格等位置信息。
-一些常用的方法:
.extract_text() 用来提页面中的文本,将页面的所有字符对象整理为的那个字符串。
.extract_words() 返回的是所有的单词及其相关信息。
.extract_tables() 提取页面的表格。
.to_image() 用于可视化调试时,返回PageImage类的一个实例。
import pdfplumber
import pandas as pdpath = 'test.pdf'
pdf = pdfplumber.open(path)
i=1
#writer=pd.ExcelWriter('output.xlsx')
df=pd.DataFrame(columns=['序号','刊名','主办单位','等级'])
sheetname=['考古文博','历史学','马克思主义理论','民族学与文化学','文学-外国文学','文学-中国文学','艺术学','语言学','哲学','宗教学','法学','管理学','环境科学','教育学','经济学-财政科学','经济学-工业经济','经济学-金融','经济学-经济管理','经济学-经济综合','经济学-贸易经济','经济学-农业经济','经济学-世界经济','人文地理学','社会学','体育学','统计学','图书馆情报与档案学','心理学','新闻学与传播学','政治学-国际政治','政治学-中国政治','综合-高校综合性学报','综合-综合性人文社科期刊']##由于存在一个表格跨页的情况,先将所有表格存放在一个DataFrame中,再根据序号拆分。for page in pdf.pages[17:59]:print (page)# 获取当前页面的全部文本信息,包括表格中的文字# print(page.extract_text())for table in page.extract_tables():#print(table)df=df.append(pd.DataFrame(table[1:],columns=table[0]),ignore_index=True)
print (df)writer=pd.ExcelWriter('output3.xlsx')
new_df=pd.DataFrame()
j=1
index=[]
#记录序号==1的行索引,用于后面的表格拆分
for i in range(len(df)):if df.ix[i,0]=='1':index.append(i)print ("################")
index.append(len(df))
#print (index)#按行索引将内容切片并逐个添加到表中
for t in range(len(index)-1):new_df=df.ix[index[t]:index[t+1]-1,:]#print (new_df)new_df.to_excel(writer,sheet_name=sheetname[t],encoding='gb2312',index=None)
writer.save()
pdf.close()
print('finished')
最终保存为Excel。
用python 将PDF中的表格转化为Excel相关推荐
- PDF中的表格导入到Excel(分割)
PDF中的表格导入到Excel(分割) 1,把pdf打开,选择文本内容,复制,粘贴到表格中,可效果..... 2,进行分列,大家仔细看表格,发现.... 1,选中要拆分的列, 2,切换到数据菜单,点击 ...
- Python提取pdf中的表格数据(附实战案例)
14天阅读挑战赛 今天给大家介绍一个Python使用工具,那就是从pdf文件中读取表格数据,主要用到第三方库 pdfplumber. pdfplumber简介 pdfplumber是一款基于pdfmi ...
- 如何将word中的表格转化为excel中?
1.复制word中的表格 2.到excel中右击选择"选择性粘贴",选择"无文本格式" 3.完成
- UIPATH 结合 Python 识别 PDF 中的表格
工作中遇到的需求: 采购文档在用友U8中打印出来后, 识别表格并把表格内容附在邮件内容中发送给对应采购人员 摘录一下关键点. 首先, 我用的 Python 脚本如下: import pdfplumbe ...
- PDFPlumber使用入门+python实现PDF中表格转化为Excel的方法
PDFPlumber使用入门:https://blog.csdn.net/weixin_48629601/article/details/107224376 python实现PDF中表格转化为Exce ...
- python pdf 数据转excel 表格_python实现PDF中表格转化为Excel的方法
这几天想统计一下<中国人文社会科学期刊 AMI 综合评价报告(2018 年):A 刊评价报告>中的期刊,但是只找到了该报告的PDF版,对于表格的编辑不太方便,于是想到用Python将表格转 ...
- python分析pdf年报 货币现金_如何用Python从大量pdf 中提取表格中的数据进行分析?...
根据一楼答案@森林的建议 说说我的处理经验 我也是借助开源项目tabula,不得不说tabula的功能确实很强大. 我是用Python来处理数据,但是没有用tabula-py,因为表格跨列跨行等情况比 ...
- python提取pdf中的图片_提取PDF中内容(表格篇)
由于(质量优质)PDF较好的阅读性,工作当中难免有文件使用PDF格式保存和流通的.但是由于PDF过于追求视觉的享受,所以在编辑其内容元素上相较微软office系列的确困难.不时会碰到看的到内容却难以直 ...
- python抓取pdf中的表格转换为csv表格汉语站名批量变英文(拼音)名
1, PDF转csv import tabulafrom tabula import read_pdf from tabulate import tabulate import pandas as p ...
最新文章
- struts2中使用标签操作静态方法等
- 个人前端学习路线图与github优秀前端开发者的路线图推荐
- Keep 再融资以后
- R语言dplyr包使用select函数通过索引查询或者排除数据列实战(Select Columns by Index)
- IDA中的SIG应用
- vuecli3修改html,详解vue-cli3多页应用改造
- VMware vSphere Client安装Centos7
- 【译】Everything You Need to Know About Decentralized AI
- oracle normal bitmap,深入解析Oracle ASSM结构之Level 1 Bitmap Block
- live555 windows下编译以及修订
- 贵阳中职计算机学什么区别,贵阳中职计算机专业
- 网络协议从入门到底层原理(8)HTTPS(成本、通信过程、TLS1.2的连接,配置服务器HTTPS)
- python下载官网-Python2.7.10
- java 文件解签加签_将更改的文件移到另一个分支进行签入
- ceb怎么转换成word_关于把CEB文件转换成word文档!!!
- 一小时入门proteus使用教程
- win10 自动修复不了无限循环的问题
- java线程安全的计数器_Java线程安全计数器的简单代码示例
- 信息化项目中服务器费用占比,企业信息化投入是什么 它的占比是多少
- solidity学习-投票
热门文章
- 硬件常用测试软件整理,方便大家下载
- 华清远见-重庆中心-前端技术阶段
- 山东理工大学计算机组成原理试题,山东理工大学成人高等教育计算机组成原理试卷(共3份)...
- linux查看u盘的分区,linux磁盘管理——识别和使用u盘
- persevere的用法_persevere是什么意思_persevere怎么读_persevere翻译_用法_发音_词组_同反义词_坚忍_熬住-新东方在线英语词典...
- 2018今日头条秋招 笔试 (2017/09/10)
- 裁员滚滚,这个冬天有点冷 | 程序员有话说
- 百度前端技术学院--零基础--第二天 给自己做一个在线简历吧
- linux pl320 mbox控制器驱动分析-(3) pl320驱动代码分析
- 数据库中exists的用法