使用python从多个文件夹中读取和提取多个PDF

时间:2021-06-25 07:07:35

标签: python pdf text

我有一个名为 SOURCE 的文件夹。此 SOURCE 文件夹有多个文件夹 - A、B、C、D、E、F、G、H。所有这些文件夹都有多个 PDF 文件。我想从 A 中读取单个 pdf 文件,B 中一个,C 中一个,D 中一个,直到 H。所以总共有 8 个文件夹,我想读取第一个 pdf 文件并提取文本来自它的数据。 从 1pdf 中提取文本数据很好,但是如何从多个 pdf 中提取文本数据? 这是我为单个 pdf 提取文本数据的代码。


from pdfminer.layout import LAParams, LTTextBox
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.converter import TextConverter
import io
import glob as g

resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
converter = TextConverter(resource_manager, fake_file_handle, laparams=LAParams())
page_interpreter = PDFPageInterpreter(resource_manager, converter)


with open('F:/technophile/Proj/SOURCE/A/abc.pdf', 'rb') as fh:

    for page in PDFPage.get_pages(fh, caching=True, check_extractable=True):
        page_interpreter.process_page(page)

    text = fake_file_handle.getvalue()

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

print(text)

1 个答案:

答案 0 :(得分:1)

也许你可以试试这样的:

# your code

import os

folder = ['A','B','C','D','E','F','G','H']
allyourpdf = []


for fold in folder:
    allyourfiles = os.listdir(fold)
    firstpdf = ""
    for i in allyourfiles:
        if '.pdf' in i:
            firstpdf = i
            break

    with open('F:/technophile/Proj/SOURCE/'+fold+firstpdf, 'rb') as fh:

        for page in PDFPage.get_pages(fh, caching=True, check_extractable=True):
            page_interpreter.process_page(page)

        text = fake_file_handle.getvalue()
        allyourpdf.append(text)

# your code

我觉得应该可以