0

我在关闭用pdfplumber.open()函数打开的文件时遇到问题。每当我调用extract_text()文件对象时,即使在使用范围之后,文件似乎也是打开的,例如pdfplumber.open(),我可以这样print(pdf.pages[1].extract_text())做。调用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()

如果我不在page.extract_text()for 循环中调用 PDF 对象,例如:

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

它正常关闭并print(pdf.pages[1].extract_text())抛出ValueError: seek of closed file
我错过了什么,或者page.extract_text()以某种方式缓存页面,我不应该打扰?任何意见,将不胜感激!

4

0 回答 0