【问题标题】:text contents of pdf to csv file conversion- How to?pdf到csv文件的文本内容转换-如何?
【发布时间】:2019-09-23 04:52:44
【问题描述】:

我想将 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


    【解决方案1】:

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

    conversion.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()
    

    【讨论】:

      【解决方案2】:

      试试这个,希望能成功

      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
      

      【讨论】:

      • 第一个再次显示一个空的 csv 文件。而第二个给出一个 TypeError:AttributeError: 'NoneType' object has no attribute 'to_csv' @Kalana Eranda Jayasuriya
      • 能否将输出文件重命名为另一个名称并再次运行第一个代码
      • 我做到了,但它在 csv 文件中没有显示任何内容。它是一个空白的 csv 文件
      • 如果它不起作用将pages='all'重命名为pages='1-<enter ending page number>'然后运行它
      • 我在我的答案中添加了另一个代码,请检查它,
      猜你喜欢
      • 2011-11-26
      • 1970-01-01
      • 2018-03-28
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      相关资源
      最近更新 更多