Skip to main content
 首页 » 编程设计

python之无论如何多线程pdf挖掘

2024年09月03日31dyllove98

我有一个代码,它在一堆 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))