如何关闭pyPDF"PdfFileReader"类文件句柄

rom*_*mor 9 python pypdf

这应该是一个非常简单的问题,我无法通过Google搜索找到答案:如何关闭pyPDF"PdfFileReader"类打开的文件句柄

这是片段:

import os.path
from pyPdf import PdfFileReader

fname = 'my.pdf'
input = PdfFileReader(file(fname, "rb"))

os.rename(fname, 'my_renamed.pdf')
Run Code Online (Sandbox Code Playgroud)

这会引起错误[32]

谢谢

fit*_*ele 5

操作系统阻止文件在其他东西打开时重新命名.这是一件好事(tm).

Python的with语句将在您完成读取/操作后自动关闭该文件.

with open(fname, "rb") as f:
  input = PdfFileReader(f, "rb"))

os.rename(fname, 'my_renamed.pdf')
Run Code Online (Sandbox Code Playgroud)

如果您仍在使用Python 2.5,则必须进行特殊导入:

from __future__ import with_statement
Run Code Online (Sandbox Code Playgroud)

Python 2.6及更高版本默认启用.