2

我想将 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 文件。

4

2 回答 2

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()
于 2019-09-23T07:21:46.633 回答
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
于 2019-09-23T05:34:51.533 回答