如何使用PyPDF和Python从PDF文件中提取表格数据

时间:2015-07-28 20:13:44

标签: python regex pypdf

所以我以前在Java中做过这个,但我比python更新,所以我需要知道锄头做以下事情:

我有一堆PDF文件,我的python脚本从网站上下载。这些PDF包含有关不同产品的产品信息。并非所有PDF都具有相同的类别/数据。有一个类别,应用程序,在一个PDF中跨越2个数据行,在另一个PDF中跨越1个。我通过收集一方然后另一方并将它们压缩成字典来从数据中制作字典,但是,由于应用程序在其中一个PDF中占用2行,我被迫合并这些单独的列表然而,如果我为所有人做到这一点,那么1个衬里的那个将与下一行混合。如果它是1或2行并且做相应的事情我怎么才能理解它。这是我的代码:

from PyPDF2 import PdfFileReader, PdfFileWriter
import re

file = open('C:/Users/CDS/tester.pdf', 'rb')
pdf = PdfFileReader(file)
text = pdf.getPage(0).extractText()

a = re.findall('Product Attributes(.*?)Minerallac Company', text, re.S)
b = re.findall('Tension Strength(.*?)FE:', text, re.S)

a = ''.join(a)
a = a.strip()
a = a.split('\n')
a[9] = a[9] + a[10]
a.remove(a[10])

b = ''.join(b)
b = b.strip()
b = b.split('\n')
b[4] = b[4] + b[5]
a.remove(a[5])

PDFData = dict(zip(a, b))

categories = ['Application', 'Finish', 'Brand Name']

for category in categories:
    print(category + ': ' + PDFData[category])
    print('\n')

以下是我正在比较的2个PDF文件的链接:

First One Here

Second One Here

如您所见,应用程序行具有不同长度的数据。一个是1行,另一个是2行。如何使用PyPDF检测到这一点,是否有更好的方法来获取数据而不是我正在做的事情?

很抱歉,如果它有点令人困惑,请告诉我你是否理解不了什么!

0 个答案:

没有答案