我想将 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 文件。
我自己找到这个问题的答案 为了解决这个问题,我想出了将 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()
试试这个,希望有效果
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
Tabula-py 用于只读pdf文档中的表格