pdf 到 csv 文件的文本内容转换 - 如何?

问题描述 投票:0回答:3

我想将 PDF 文件作为输入。作为输出文件,我想要显示一个 csv 文件。因此,pdf 文件中的所有文本数据都应转换为 csv 文件。但我不明白这是怎么发生的..我最早需要你的帮助,因为我已经尝试过但无法做到。

我所做的是使用一个名为 Tabula-py 的库,它将 pdf 转换为 csv 文件。它确实创建了 csv 格式,但没有内容从 pdf 文件复制到 csv 文件。

这是代码

from tabula import convert_into,read_pdf
import tabula
df = tabula.read_pdf("crimestory.pdf", spreadsheet=True, 
                     pages='all',output_format="csv")
df.to_csv('crimestoryy.csv', index=False)

输出应为包含数据的 csv 文件。 我得到的是一个空白的 csv 文件。

python csv pdf tabula
3个回答
2
投票

我自己找到这个问题的答案 为了解决这个问题,我想出了将 pdf 文件转换为文本文件的方法。然后我将此文本文件转换为 csv 文件。这是我的代码。

转换.py

import os.path
import csv
import pdftotext
#Load your PDF
with open("crimestory.pdf", "rb") as f:
   pdf = pdftotext.PDF(f)

# Save all text to a txt file.
with open('crimestory.txt', 'w') as f:
    f.write("\n\n".join(pdf))

save_path = "/home/mayureshk/PycharmProjects/NLP/"

completeName_in = os.path.join(save_path, 'crimestory' + '.txt')
completeName_out = os.path.join(save_path, 'crimestoryycsv' + '.csv')

file1 = open(completeName_in)
In_text = csv.reader(file1, delimiter=',')

file2 = open(completeName_out, 'w')
out_csv = csv.writer(file2)

file3 = out_csv.writerows(In_text)

file1.close()
file2.close()

1
投票

试试这个,希望有效果

import tabula

# convert PDF into CSV
tabula.convert_into("crimestory.pdf", "crimestory.csv", output_format="csv", pages='all')

df = tabula.read_pdf("crimestory.pdf", encoding='utf-8', spreadsheet=True, pages='all')
df.to_csv('crimestory.csv', encoding='utf-8')

from tabula import read_pdf
df = read_pdf("crimestory.pdf")
df
#make sure df displays your pdf contents in the output

from tabula import convert_into
convert_into("crimestory.pdf", "crimestory.csv", output_format="csv")
!cat.crimestory.csv

0
投票

Tabula-py 用于只读pdf文档中的表格

© www.soinside.com 2019 - 2024. All rights reserved.