【发布时间】:2020-05-14 19:29:44
【问题描述】:
我目前正在使用tabula.read_pdf() 从 pdf 中提取表格。但是,没有关于该表来自哪个页面的信息。一种方法是通过传入tabula.read_pdf() 的pages 参数来获取页面总数并迭代每个页面。然而,这是极其低效的。以下是一些解释,我在这里使用一个示例pdf http://www.annualreports.com/HostedData/AnnualReports/PDF/NASDAQ_AMZN_2019.pdf
%%time
for i in range(1,88):
tables = read_pdf(pdf_path, pages=i, stream=True)
# CPU times: user 803 ms, sys: 686 ms, total: 1.49 s
# Wall time: 3min 4s
%%time
tables = read_pdf(pdf_path, pages='all', stream=True)
# CPU times: user 402 ms, sys: 171 ms, total: 573 ms
# Wall time: 21.2 s
【问题讨论】:
-
您能否解释一下为什么它效率低下?
-
嗨 lammuratc,我刚刚编辑了我的问题并添加了有关迭代每个页面与使用 pages='all' 所用时间的更多详细信息。
-
我明白你的意思。我对pdf文件的库不太了解。你不能只迭代一次pdf并保存所有表格吗?或者也许你可以使用另一种语言,你知道 Python 不是最快的 :)