【问题标题】:Read and extract multiple PDF's from multiple folders using python使用python从多个文件夹中读取和提取多个PDF
【发布时间】:2021-06-25 07:07:35
【问题描述】:

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

【问题讨论】:

  • Stackoverflow 不是免费的编码服务,也不打算取代现有的教程或文档。您应该发送honest attempt at the solution,然后然后在必要时询问有关它的具体问题。

标签: python pdf text


【解决方案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

我觉得应该可以

【讨论】:

  • 感谢您的及时回复!在 with open 代码块中,abc.pdf 会出错。因为并非所有文件夹都包含 abc.pdf。我想从每个文件夹中选择第一个 pdf 文件
  • @technophile_3 我刚刚修改了答案,现在它会在每个文件夹中找到第一个 pdf 文件并对其进行处理
  • 由于 os.listdir(),我仍然收到 OSError,进行了一些调整,现在您的解决方案可以正常工作了!非常感谢!
  • 假设如果我想使用相同的代码从所有文件夹中读取所有文件,我该如何实现呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 2019-06-25
  • 2021-11-26
  • 2018-09-07
  • 1970-01-01
相关资源
最近更新 更多