簡體   English   中英

使用Python將帶有文本的PDF文件導入CSV文件

[英]Importing a PDF file with text into a CSV file with Python

我在這里有點受阻。 我被要求使用Python將PDF文件放入CSV文件。 我一直在尋找互聯網,並在此地址找到了本指南:

https://www.blog.pythonlibrary.org/2018/05/03/exporting-data-from-pdfs-with-python/

那里寫了一個代碼,解釋了如何將PDF導入到CSV,我在這里放行:

import csv
import os

from miner_text_generator import extract_text_by_page


def export_as_csv(pdf_path, csv_path):
    filename = os.path.splitext(os.path.basename(pdf_path))[0]

    counter = 1
    with open(csv_path, 'w') as csv_file:
        writer = csv.writer(csv_file)
        for page in extract_text_by_page(pdf_path):
        text = page[0:100]
        words = text.split()
        writer.writerow(words)


if __name__ == '__main__':
    pdf_path = 'w9.pdf'
    csv_path = 'w9.csv'
    export_as_csv(pdf_path, csv_path)

現在我的問題是,當我運行它時,它告訴我找不到模塊“ miner_text_generator”。 我嘗試用pip安裝它,但也無法正常工作。 我正在使用Python 3.7

你們對如何解決這個問題有任何想法嗎? 還是有其他方法可以做到這一點? 我不能使用API​​腳本或基於Web的腳本,它必須保留在我的計算機中。

謝謝你的幫助!

您無法使用pip導入或安裝,因為miner_text_generator是帖子作者編寫的python代碼。 您可以創建.py文件並將其保存在代碼的同一文件夾中,然后import將起作用:

# miner_text_generator.py

import io

from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage

def extract_text_by_page(pdf_path):
    with open(pdf_path, 'rb') as fh:
        for page in PDFPage.get_pages(fh, 
                                      caching=True,
                                      check_extractable=True):
            resource_manager = PDFResourceManager()
            fake_file_handle = io.StringIO()
            converter = TextConverter(resource_manager, fake_file_handle)
            page_interpreter = PDFPageInterpreter(resource_manager, converter)
            page_interpreter.process_page(page)

            text = fake_file_handle.getvalue()
            yield text

            # close open handles
            converter.close()
            fake_file_handle.close()

def extract_text(pdf_path):
    for page in extract_text_by_page(pdf_path):
        print(page)
        print()

if __name__ == '__main__':
    print(extract_text('w9.pdf'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM