«Формат файла не поддерживается» при многопоточности списка файлов PDF - PullRequest
1 голос
/ 11 марта 2019

Я учу себя основам работы с потоками в Python и застрял.Я хочу, чтобы скрипт применил функцию к списку PDF-файлов.Предполагается, что эта функция просто подсчитывает количество таблиц в каждом файле PDF, а затем возвращает объединенный список того, сколько таблиц имеет каждый файл.

В настоящее время я получаю сообщение об ошибке, утверждающее, что мой «формат файлане поддерживается".Насколько я могу судить, каждый путь в списке - это полный путь, который заканчивается на .pdf.Я не знаю, что я делаю неправильно?

Я сократил код до основных моментов и включил свой код ниже

import camelot
from multiprocessing.dummy import Pool as ThreadPool 
import glob
import os


#get a list of all the pdf paths in the directory I am interested in
pdfs = [os.path.abspath(x) for x in os.listdir(r'C:\Users\josiahh\Desktop\threading_learning')]

#format each path to have the r letter in front of it
rpdfs = ["r'" + pdf + "'" for pdf in pdfs]

#function that counts each table in the pdf. THIS IS WHERE SOMETHING IS WRONG...I THINK
listoflengths = []
def len_table5(filepath):    
    tables = camelot.read_pdf(filepath, pages = '1-end',flavor='stream')
    tablelength = len(tables)
    listoflengths.append(tablelength)

#threading code
pool = ThreadPool(5) 
results = pool.map(len_table5, rpdfs)
pool.close() 
pool.join() 

Любая помощь будет принята с благодарностью.Пожалуйста, дайте мне знать, если я смогу что-то уточнить*

...