如何用表格py将PDF转换成CSV?

2024-09-19 20:42:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python3中,我有一个PDF文件“Ativos_Fevereiro_2018_servidores_rj.PDF”,共6041页。我和Ubuntu在一起

每一页的顶部都有两行文字。在一张桌子下面,有标题和两列。每表36行,最后一页少

在每一页的末尾,在桌子后面,还有一行文字

我想从这个PDF创建一个CSV,只考虑页面中的表。忽略桌子前后的文字

最初我测试了表格。但它会生成一个空文件:

from tabula import convert_into

convert_into("Ativos_Fevereiro_2018_servidores_rj.pdf", "test_s.csv", output_format="csv")

请问,有没有人知道使用表格py来满足这种需求的另一种方法?

或者以另一种方式将此文件类型中的PDF转换为CSV?


Tags: 文件csvconvertpdfubuntupython3表格文字
1条回答
网友
1楼 · 发布于 2024-09-19 20:42:09

好的,我发现了问题:您必须设置spreadsheet=True,并保持utf-8编码:

df = tabula.read_pdf("Ativos_Fevereiro_2018_servidores_rj.pdf", encoding='utf-8', spreadsheet=True, pages='1-6041')

在下面的图片中,我用第一页测试了它(因为你的文件很大):

enter image description here

之后您可以将数据帧保存为csv:

df.to_csv('otuput.csv', encoding='utf-8')

编辑:

好的,错误可能是java内存问题。为了加快速度,我添加了pages选项。还有一个编码问题,所以encoding='utf-8'添加到csv导出中。 如果继续遇到java错误,请尝试将其分块解析,例如pages='1-300'。我刚刚完成了所有6041(在一台64GB内存的机器上),它工作得很好。

相关问题 更多 >