Не удается закрыть файл PDF, открытый с помощью pdfplumber open()

У меня проблема с закрытием файла, открытого функцией. Всякий раз, когда я звоню extract_text() на файловом объекте кажется, что файл открыт даже после того, как pdfplumber.open()область, и я могу например. Вызов close() на объекте PDF тоже не помогает.

Мой код:

      import pdfplumber
import os


class Class():

    def method(self, file_url):

        with pdfplumber.open(file_url) as pdf:
            for page in pdf.pages:
                #logic in here
                page_text = page.extract_text()
        
        print(pdf.pages[1].extract_text())
        pdf.flush_cache()
        pdf.close()
        print(pdf.pages[1].extract_text())



def main():
    dir_path = os.path.dirname(os.path.realpath(__file__))
    file_path = dir_path + '/file.pdf'

    c = Class()
    c.method(file_path)


if __name__=="__main__":
    main()

Если я не вызываю объект PDF внутри цикла for, например:

                  for page in pdf.pages:
                #logic in here
                pass

он закрывается нормально и print(pdf.pages[1].extract_text()) бросает ValueError: seek of closed file
Я что-то упускаю, или page.extract_text()каким-то образом кеширует страницы, и мне не о чем беспокоиться? Любой совет будет принят во внимание!

0 ответов

Другие вопросы по тегам