Ошибка кэширования при выполнении OCR для каталога pdf в python - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь распознать весь каталог PDF-файлов, используя pytesseract и imagemagick, но проблема в том, что imagemagick использует все пространство моей папки Temp, и, наконец, я получаю ошибку кеша, т.е. «CacheError: невозможно расширить кеш» C : / Users / Azu / AppData / Local / Temp / magick-18244WfgPyAToCsau11 ': на устройстве не осталось места @ error / cache.c / OpenPixelCache / 3883 "Я также написал код для удаления содержимого временной папки после OCR, но все еще сталкиваюсь с той же проблемой.

Вот код до сих пор:

import io
import os
import glob
from PIL import Image
import pytesseract
from wand.image import Image as wi


files = glob.glob(r"D:\files\**")
tempdir = r"C:\Users\Azu\AppData\Local\Temp"
filesall = os.listdir(tempdir) 
for file in files:
    name = os.path.basename(file).split('.')[0]
    #print(file)
    pdf = wi(filename = file, resolution = 300)

    pdfImg = pdf.convert('jpeg')

    imgBlobs = []

    for img in pdfImg.sequence:
        page = wi(image = img)
        imgBlobs.append(page.make_blob('jpeg'))

    extracted_texts = []

    for imgBlob in imgBlobs:
            im = Image.open(io.BytesIO(imgBlob))
            text = pytesseract.image_to_string(im, lang = 'eng')
            extracted_texts.append(text)


    with open("D:\\extracted_text\\"+ name + ".txt", 'w') as f:
        f.write(str(extracted_texts))

for ifile in filesall:
        if "magick" in ifile:
            os.remove(os.path.join(tempdir,ifile))
...