python - 无论如何,多线程pdf挖掘?

标签 python pdf runtime pdfminer slate

我有一个代码正在一堆 pdf 中寻找特定的字符串序列。问题是这个过程极其缓慢。 (有时我会收到超过 50000 页的 pdf)

有没有办法实现多线程?不幸的是,尽管我进行了搜索,但我对线程代码一无所知

import os
import shutil as sh
f = 'C:/Users/akhan37/Desktop/learning profiles/unzipped/unzipped_files'

import slate3k as slate


idee = "123456789"
os.chdir(f)
for file in os.listdir('.'):
    print(file) 
    with open(file,'rb') as g:
        extracted_text = slate.PDF(g)

            #extracted_text = slate.PDF() 

        # print(Text)
        if idee in extracted_text:
            print(file)
        else:
            pass

运行时间很长。我不认为这是代码的错误,而是我必须浏览 700 多个 pdf 的事实

最佳答案

我建议使用pdfminer,您可以将文档对象转换为页面对象列表,您可以在不同的内核上进行多重处理。

    fp = open(pdf_path, "rb")
    parser = PDFParser(fp)
    document = PDFDocument(parser, password)
    if not document.is_extractable:
        raise PDFTextExtractionNotAllowed

    laparams = LAParams() # set
    resource_manager = PDFResourceManager()
    device = PDFPageAggregator(resource_manager, laparams=laparams)
    interpreter = PDFPageInterpreter(resource_manager, device)

    all_attributes = []

    list_of_page_obj = list(PDFPage.create_pages(document))

关于python - 无论如何,多线程pdf挖掘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58547310/

相关文章:

html - 在分页符前的最后一行添加边距/填充

c# - 如何从运行时创建的控件中获取值

java - 通过java运行批处理文件

python - 访问 Numpy 数组的列?尝试通过转置或通过列访问来执行的错误

python - N 以下包含数字 7 的所有数字的总和

python - 为什么我的 optimize.leastsq 不工作?

python - 遍历反向(列表)是否会增加我的函数的时间复杂度?

pdf - 从 PDF Tm 运算符确定翻译/位置

java - 自定义 PDF 创建 - 大图像

java - 使用 JavaFX 2.1 编译运行