python提取pdf表格并整理(10行Python代码批量实现pdf转txt)

在日常工作中,常常要把文档转格式,比如常见pdf转word,pdf转ppt等,如果数量少的话还好,可以直接去网上找网站解决,多了的话就比较麻烦了,因为很多网站都是限制一天只能转几个,再多就得冲vip。

那么用python脚本来说应该怎么办呢?办法非常简单,几行代码就可以搞定。

python有专门针对PDF,word,txt,ppt,excel 的包。

我们今天就试着把pdf分别转为这四种格式。

先来看怎么把pdf 转为txt,这里说一个前提,pdf是可以编辑的,如果是影印的可以先转为图片然后再文字识别。

首先你需要安装pdf的包,pdfplumber。

直接

pip install pdfplumber

然后,就可以提取了,首先来看怎么提取单页文字,随便找了一份文档:

#提取文字 import pdfplumber with pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f: page = f.pages[2] textdata = page.extract_text() print(textdata)

这样的话就能提取了,效果还不错:

python提取pdf表格并整理(10行Python代码批量实现pdf转txt)(1)

然后保存成txt,另外加上多页提取:

#多页提取文字 import pdfplumber with pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f: for i in range(1,5): page = f.pages[i] textdata = page.extract_text() print(textdata) data = open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\txt提取.text',"a",encoding='utf-8') data.write(textdata)

格式保存得还不错,也没有什么乱码的出现。

python提取pdf表格并整理(10行Python代码批量实现pdf转txt)(2)

​依据这个原理可以,继续把pdf转成word,这里的pdf限制是只有文字格式,跟刚才的原理一样,是利用的extract_text()函数。

首先需要在终端安装docx这个包。

然后可以执行下面的代码:

下面展示的是单页提取,如果想展示多页提取,可以直接把pages改成[2-5]这种。

#多页提取文字 import pdfplumber with pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f: for i in range(1,5): page = f.pages[i] textdata = page.extract_text() print(textdata) data = open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\txt提取.text',"a",encoding='utf-8') data.write(textdata)

结果如下:有些符号没有提取出来,有些字体不统一,后期需要进行一个调整。

python提取pdf表格并整理(10行Python代码批量实现pdf转txt)(3)

下面一个,就是pdf提取表格放在excel中。

这个来讲的话就比较实用,因为我们如果一个个复制的话真的比较麻烦,还不容易复制完全。这个脚本的限制也有,就是只能提取表格,pdf其他的文字则不能提取。我随意编了一些数据,提取了两页:

python提取pdf表格并整理(10行Python代码批量实现pdf转txt)(4)

我刚试了下,如果直接用pdf复制出来,就是这样的效果:

python提取pdf表格并整理(10行Python代码批量实现pdf转txt)(5)

​代码实现:

import pdfplumber from openpyxl import Workbook with pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\练习.pdf') as f: workbook = Workbook() #新建工作薄 sheet = workbook.active #激活工作表 for i in range(1,3): page = f.pages[i] table = page.extract_table() for row in table: print(row) sheet.append(row) workbook.save(r"C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\excel.xlsx") i =1 print("第%d页pdf提取完成"%i)

关注我 @秋语棠,带你学好玩的python编程。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页