python删除pdf中的表格,python删除pdf指定页面

本文目录一览:

Python利器:如何处理PDF表格数据

大家好,我是Peter~

在很多情况下,我们都需要处理PDF格式的文件。尤其当我们遇到PDF表格数据需要进行提取,真的是一个令人头疼的问题。

因为PDF文件不能像Word那样直接复制,即使复制了再黏贴也可能会出现格式排版错乱甚至乱码问题。如何从一个PDF文件提取出表格数据?本文提供两个解决方案:

首先提供的一种方法是从文字 PDF 中提取表格信息的工具:Camelot,它能够直接将大部分表格转换为 Pandas 的 Dataframe。

更多的详细信息,请参考项目地址:

camelot的安装有多种方式。如果有报错,网上一般有解决方式:

1、通过conda安装

2、使用pip进行安装

3、通过GitHub进行安装

首先将项目复制到本地:

然后进入文件中进行安装:

下面通过一个案例来讲解如何使用camelot。假设我们现在有一个只有一页的PDF文件test.pdf:

1、先读取文件

导出成csv格式的数据(方式1)

查看tables的相关信息:

导出方式2:

将数据转换成DataFrame:

tabula的功能比camelot更加强大,可以同时对多个表格数据进行提取。项目的具体地址请参考:

tabula的安装是非常简单的:

安装之后检验这个库是否安装成功:

通过tabula这个库来读取PDF文件:

然后我们发现列表中唯一的一个元素就是dataframe:

将读取到的数据输出成CSV格式的文件:

上面读取的PDF文件是比较简单的,只有一页,而且刚好是一个很标准的表格形式的数据,下面看一个比较复杂的例子:

下面是第一页,第一列可以看成是索引:

在第二页中有两份表格,而且中间有很多的空白行:

第三页的数据比较标准:

这3页是在同一个PDF文件中,这3页是在同一个PDF文件中,这3页是在同一个PDF文件中

上面的红色提示中我们看到:当没有指定pages参数的时候,只会默认读取第一页的数据,所以列表的长度为1。

转成dataframe后将原来的索引变成新的一列 (部分数据)

通过pages来读取全部数据:

通过指定pages="all":

同时获取两个表格的数据:

通过area参数来指定:

删除在读取的表格中我们不需要的字段信息

可以将得到的数据输出成不同格式的文件,以json格式为例:

我们可以看到

哪位大神知道如何用Python中的docx模块删除docx文档中的表格?

可以使用docx模块。

from docx import Document # 导入库"""word表格中"""

path = "C:\\Users\\1\\Desktop\\测试.docx" # 文件路径

document = Document(path) # 读入文件

tables = document.tables # 获取文件中的表格集

删掉指定的那一个表格即可

希望我的回答对你有帮助~

python删除打不开的pdf

python删除打不开的pdf可以用以下方法:

1、python内要对pdf文件进行操作的话,一般都是使用PyPDF2这个第三方模块,而删除pdf页面则需要先将这个文件对象实例化到python中并且创建一个数据写入工具才可以来保存pdf文件。

2、使用for循环去迭代这个reader对象,这个reader对象还要调用getNumPages()方法,此方法的作用就是获取到这个pdf文件的页数,在循环之中创建一个空文档并且将获取到pdf页给写入。

Python解析PDF表格——PDFPlumber vs Camelot

题图来自 Camelot: List o’ 10 Intriguing Mythical Places

为获取LEED认证项目的评分表明细,可以从USGBC的项目页面上爬取,或者从pdf格式的项目评分表中解析得到。以 重庆某LEED EM:OB v2009 Gold项目 为例,USGBC上公布的 LEED项目得分表 其格式并不统一,利用XPath爬取后需要进一步清洗处理。相对而言,LEED项目所对应的 项目评分表PDF文件 的数据更为规范完整。因此考虑尝试解析出PDF文件中的表格,以便后续分析。

Python 处理PDF文件的程序包,pdfminer、tabula、pdfplumber、camelot……查询资料表明,似乎普遍认为pdfminer的效果不怎么好,而tabula需要java支持 ,想偷懒于是只试了pdfplumber和camelot。

安装过程不赘述,直接来看运行结果。

pdfplumber无法直接解析出Scorecard.pdf文件中的表格,但实际上要解决此问题也并非难事。调整下思路,可先解析出pdf文件中的文本,让后通过分列来得到表格。

利用pdfplumber的extract_text()命令可解析出pdf文件中的文本,但由于本次需要解析的得分表pdf文件的排版的原因,左右两个表格的文本行并未完全对齐,因此如果直接解析完整页面上的文本的话,文字会出错。先用corp()命令指定识别范围,然后再extract_text(),识别得到的文本列表如下所示。

对于类似本例中Scorecard.pdf表格排版有错位的情况,也可以按照表格在页面中所处的位置,指定表格识别的范围。所用到的指令:camelot.plot()可以绘制出页面的略图,table_area参数可以指定表格识别的范围。

又及,Camelot原来是亚瑟王和圆桌骑士们的宫殿所在地,和Asgard的Valhalla一样,也是传说中的圣域。搜索camelot程序安装包时无意中学到的,涨知识了。

[1] Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比

[2] 用Python提取pdf文件中的表格数据

[3] python读取pdf文件

[4] Github: pdfplumber

[5] Camelot: PDF Table Extraction for Humans

[6] ImageMagick Installation

[7] ImageMagick之PDF转换成图片(image)

[8] LEED 2009 for Existing Buildings: Operations Maintenance

[9] Camelot - Wikipedia

[10] List o’ 10 Intriguing Mythical Places

[11] Camelot识别pdf表格时的参数设置补充

Python 哪个库可以删除Excel表格的某行或某列

openpyxl 2.5以上版本可以删除Excel表格的某行或某列。

示例代码:

from openpyxl import *。

filename = 'test.xlsx'。

wb = wb = load_workbook(filename)。

ws = wb.active。

ws.delete_rows(2,2) #删除index为2后面的2行。

扩展资料:

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。

这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。

参考资料来源:百度百科-Python

本文链接:https://my.lmcjl.com/post/18794.html

展开阅读全文

4 评论

留下您的评论.