目前我正在使用 PyPDF2 作为依赖项。
我遇到了一些加密文件并像往常一样处理它们(在以下代码中):
from PyPDF2 import PdfReader
reader = PdfReader(pdf_filepath)
if reader.is_encrypted:
reader.decrypt("")
print(len(reader.pages))
我的文件路径看起来像 “~/blah/FDJKL492019 21490 ,LFS.pdf” PDF.decrypt(“”) 返回 1,这意味着它是成功的。但是当它点击 print PDF.getNumPages() 时,它仍然会引发错误“PyPDF2.utils.PdfReadError:文件尚未解密”。
我如何摆脱这个错误?我可以通过双击打开 PDF 文件(默认使用 Adobe Reader 打开)。
原文由 Jin Lee 发布,翻译遵循 CC BY-SA 4.0 许可协议
回答我自己的问题:如果您的文件名中有任何空格,那么尽管返回成功代码,PyPDF 2 解密功能最终还是会失败。在通过 PyPDF2 运行 PDF 之前,尝试在命名 PDF 时坚持使用下划线。
例如,
而不是“FDJKL492019 21490,LFS.pdf”做类似“FDJKL492019_21490_,LFS.pdf”的事情。