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

原创文章,作者:SCHA,如若转载,请注明出处:https://www.506064.com/n/140670.html

(0)
SCHASCHA
上一篇 2024-10-04
下一篇 2024-10-04

相关推荐

  • 深入理解TimeInterval

    TimeInterval是一个经常被使用却不被深入理解的概念。在这篇文章中,我们将从多个方面阐述TimeInterval的作用、使用方法以及相关技巧。 一、基本概念 TimeInt…

    编程 2024-10-03
  • python常见错误及解决(python出现错误解决方案)

    本文目录一览: 1、python运行错误怎么办? 2、Python出现错误,怎么解决,求解 3、Python 运行报错NameError出现原因,怎么解决 python运行错误怎么…

  • CSS Color详解

    一、CSS Color属性 CSS颜色属性定义HTML文档中的各种元素的颜色,提供了RGB、HEX、HSL等多种颜色定义方式。 CSS Color属性列表有以下几种: backgr…

    编程 2024-10-08
  • 字母间隔的重要性

    在网页制作中,字母间隔是一种非常重要的排版方式,它可以让文字更加美观、易读。在这篇文章中,我们将从多个方面对字母间隔的重要性进行阐述。 一、提高阅读体验 字母间隔可以使得文字之间的…

    编程 2024-10-04
  • c语言int小括号,c语言大括号的用法

    本文目录一览: 1、c语言里小括号里int是什么意思? 2、C语言里面,定义int型的变量后面打个小括号(不是中括号!),里面写个数字,是什么意思?比如说:i 3、c语言中int …

    编程 2024-10-10
  • apt-get install指定版本完整实例

    一、什么是apt-get install指定版本 APT(Advanced Packaging Tool)是一个基于Debian软件包管理系统的高级软件工具,它可以帮助用户轻松地安…

    编程 2024-10-10
  • 安卓录音权限申请指南

    一、申请录音权限的必要性 在安卓系统中,录音权限是一项非常敏感的权限。应用想要使用设备的录音功能,需要先向用户申请相应的权限,否则将无法使用此功能。申请权限的目的是为了保障用户的隐…

    编程 2024-10-08
  • c语言中左位移,C语言左移位

    本文目录一览: 1、C语言按位左移运算规则 2、C语言左位移运算符和右位移运算符是什么意思,怎么运算,举个例子.. 3、C程序中,左移“” 的具体用法是什么? 4、C语言中怎样表示…

    编程 2024-10-04
  • ensp cloud 编程开发平台

    一、ensp cloud 概述 ensp cloud 是一款为开发者提供的全能编程开发平台。它在 web 端提供了大量先进的工具来帮助开发者进行更快、更智能、更高效地开发。ensp…

    编程 2024-10-04
  • java定义两个整数(Java定义两个整数求出和商差积)

    1、编写一个JAVA程序,定义两个整型变量a,b并给它们赋初值,然后找出它们中最大的值并 2、java编程中怎样输入两个整数? 3、java编程定义两个一维整型数组A和B,其中A中…

    编程 2024-10-03

发表回复

登录后才能评论