首页 > 解决方案 > pdf到csv文件转换的文本内容-如何?

问题描述

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

标签: pythoncsvpdftabula

解决方案


我自己找到了这个问题的答案 为了解决这个问题,我想出了将 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()

推荐阅读