Rei*_*ves 7 python csv pdf tabula
在Python 3中,我有一个PDF文件“ Ativos_Fevereiro_2018_servidores_rj.pdf”,具有6,041页。我在使用Ubuntu的计算机上
在每个页面的顶部,两行都是文本。在表格下方,带有标题和两列。每个表36行,最后一页较少
在每页末尾,表格之后,还有一行文字
我想从此PDF创建CSV,只考虑页面中的表格。并忽略表格前后的文字
最初,我测试了表格。但是它生成一个空文件:
from tabula import convert_into
convert_into("Ativos_Fevereiro_2018_servidores_rj.pdf", "test_s.csv", output_format="csv")
Run Code Online (Sandbox Code Playgroud)
拜托,有人知道这种方法可以使用tabula-py吗?
还是将这种文件类型的PDF转换为CSV的另一种方法?
好的,我发现了问题:您必须设置spreadsheet=True
并保持utf-8编码:
df = tabula.read_pdf("Ativos_Fevereiro_2018_servidores_rj.pdf", encoding='utf-8', spreadsheet=True, pages='1-6041')
Run Code Online (Sandbox Code Playgroud)
在下面的图片中,我仅在首页进行了测试(因为您的文件很大):
之后可以将DataFrame保存为csv:
df.to_csv('otuput.csv', encoding='utf-8')
Run Code Online (Sandbox Code Playgroud)
好的,该错误可能是Java内存问题。为了使其更快,我添加了该pages
选项。而且还存在编码问题,因此encoding='utf-8'
添加到了csv导出中。如果您仍然遇到Java错误,请尝试将其解析为大块,例如pages='1-300'
。我刚完成了所有6041(在一台64GB的RAM机器上),效果很好。