我在关闭用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()以某种方式缓存页面,我不应该打扰?任何意见,将不胜感激!