【发布时间】:2021-01-07 08:36:03
【问题描述】:
对 python 非常陌生。我使用了以下代码:
from pdfminer.layout import LAParams, LTTextBox
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
fp = open('Card.pdf', 'rb')
rsrcmgr = PDFResourceManager()
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
pages = PDFPage.get_pages(fp)
for page in pages:
print('Processing next page...')
interpreter.process_page(page)
layout = device.get_result()
for lobj in layout:
if isinstance(lobj, LTTextBox):
x, y, text = lobj.bbox[0], lobj.bbox[3], lobj.get_text()
print('At %r is text: %s' % ((x, y), text))
输出如下:
在 (245.76, 685.4898) 是文本:STATEMENT
在 (99.36, 538.7497999999999) 是文本:类型
在 (210.0, 538.7497999999999) 是文本:详细信息
在 (310.8, 538.7497999999999) 是文本:参考
我想将特定文本放入 CSV 的列中,例如(99.36, 538.7497999999999) 处的任何文本进入第 1 列等
我该怎么办?
【问题讨论】:
-
excel的女巫列中需要收集哪些数据?
-
在第 1 列中说来自 (245.76, 685.4898) 的数据,在第 2 列中说来自 (99.36, 538.7497999999999) 等的数据
-
您需要在单独的列中收集
x,y,text? -
没错。有什么建议吗?
-
嗨 Zaraki,我收到以下错误:x, y, text = lobj.bbox[0], lobj.bbox[3], lobj.get_text() AttributeError: 'LTCurve' object has no属性“get_text”
标签: python excel csv parsing pdf