Python 3、私はPDFファイル "Ativos_Fevereiro_2018_servidores_rj.pdf"に6,041ページあります。Ubuntuを搭載したマシン上にいます
各ページには、ページの上部に2行のテキストがあります。そして、ヘッダーと2つの列がある表の下。 36行の各テーブル(最終ページを除く)
各ページの最後の表の後には、テキスト行もあります
ページ内の表のみを考慮して、このPDFからCSVを作成します。そして、表の前後のテキストを無視します
最初にtabula-pyをテストしました。ただし、空のファイルが生成されます。
from tabula import convert_into
convert_into("Ativos_Fevereiro_2018_servidores_rj.pdf", "test_s.csv", output_format="csv")
誰か、このタイプの需要にtabula-pyを使用する別の方法を知っていますか?
または、このファイルタイプでPDFをCSVに変換する別の方法?
OK、私は問題を発見しました:あなたはspreadsheet=True
およびutf-8エンコードを保持します。
df = tabula.read_pdf("Ativos_Fevereiro_2018_servidores_rj.pdf", encoding='utf-8', spreadsheet=True, pages='1-6041')
次の図では、最初のページだけでテストしました(ファイルが大きいため)。
その後、DataFrameをcsvとして保存できます。
df.to_csv('otuput.csv', encoding='utf-8')
OK、エラーはJavaメモリの問題である可能性があります。速くするために、pages
オプションを追加しました。また、エンコードの問題もあったため、encoding='utf-8'
csvエクスポートに追加されました。 Javaエラーが引き続き発生する場合は、チャンクで解析してみてください。 pages='1-300'
。 6041(64GB RAM Machine)で)をすべて実行したところ、正常に動作しました。