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

Read and extract multiple PDF's from multiple folders using python

我有一个名为 SOURCE 的文件夹。此 SOURCE 文件夹有多个文件夹 - A、B、C、D、E、F、G、H。所有这些文件夹都有多个 PDF 文件。我想从 All-A 中的一个,B 中的一个,C 中的一个,D 中的一个,直到 H 中读取一个 pdf 文件。总而言之,我想从 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)

也许你可以尝试这样的事情:

# 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

我觉得应该可以