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