我有一个pdf文件,每一页都有一个地址。地址格式如下:
Location Name
Street Address
City, State Zip
例如:
The Gift Store
620 Broadway Street
Van Buren, AR 72956
每个地址都是这种格式的,每个都在pdf的不同页面上。
我需要提取地址信息并将结果存储在excel/csv文件中。我需要每个信息领域的条目是分开的。我的excel工作表需要在不同的列中包含位置名称、街道地址、城市、州、邮编。我在python中使用pyPdf。
我使用了下面的代码来实现这一点,但是我的代码没有考虑换行符,而是将单个页面的整个数据作为一个连续的字符串。
import pyPdf
def getPDFConten(path):
content = ""
num_pages = 10
p = file(path, "rb")
pdf = pyPdf.PdfFileReader(p)
for i in range(9, num_pages):
x = pdf.getPage(i).extractText()+'\n'
content += x
content = " ".join(content.replace(u"\xa0", " ").strip().split())
return content
con = getPDFContent("document.pdf")
print con
或我上面的例子,它给出了“礼品店620百老汇街范布伦,AR 72956”。
如果我可以逐行读取输入,那么我可以很容易地从前两行获得位置名和链表地址,其余的则使用子字符串从第三行获得。
我试图使用列出的解决方案[这里(pyPdf ignores newlines in PDF file),但它对我不起作用。我还尝试使用pdfminer:它可以逐行提取信息,但它首先将pdf转换为文本文件,我不想这样做。我只想用pyPdf。有人能告诉我哪里错了或者我错过了什么吗?这可以使用pyPdf吗?
您可以尝试使用^{} 从poppler实用程序调用
pdftotext
(可能使用-layout
选项)。它对我来说比使用pypdf有效得多。例如,我使用以下代码从PDF文件中提取CAS数字:
相关问题 更多 >
编程相关推荐