使用 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
我觉得应该可以
我有一个名为 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
我觉得应该可以