reader = PdfFileReader(filename) # 不解密可能会报错:PyPDF2.utils.PdfReadError: File has not been decrypted if reader.isEncrypted: reader.decrypt('') page = reader.getNumPages() print(page) 如果加密是高版本的(3, 4),可能会报错 NotImplementedError: only algorithm code 1 and 2 are supported 代码中有版本判断 if not (encrypt['/V'] in (1, 2)): raise NotImplementedError("only algorithm code 1 and 2 are supported") """

参考:

https://github.com/mstamy2/PyPDF2/issues/51#issuecomment-437839902

pdfplumber

安装

pip install pdfplumber

代码示例

import pdfplumber
filename = "test.pdf"
f = pdfplumber.open(filename)
print(len(f.pages))

就是那么简单,没有过多的繁琐操作,暂时没有发现其他莫名问题

实际使用中发现前者速度要快很多

参考

https://github.com/jsvine/pdfplumber

第二周:神经网络的编程基础之Python与向量化
向量化(Vectorization)就是利用矩阵运算的思想,大大提高运算速度。例如下面所示在Python中使用向量化要比使用循环计算速度快得多。
玩转Python编程:打造自己的编程王国
如果你想自学 Python 编程语言,那么你来对了地方!Python 是一种非常流行的编程语言,具有广泛的应用场景,从 Web 开发到数据科学都能发挥作用。Python 也因为其简单易学和强大的功能而备受欢迎。
Python多线程爬虫编程中queue.Queue和queue.SimpleQueue的区别和应用
在Python中,queue模块提供了多种队列类,用于在多线程编程中安全地交换信息。其中,queue.Queue 和queue.SimpleQueue 是两个常用的先进先出(FIFO)的队列类,它们有以下区别和优缺点: queue.Queue 是一个更复杂的队列类实现涉及到多个锁和条件变量,因此可能会影响性能和内存效率。 SimpleQueue 是一个更简单的队列类它只提供了put()和get()两个方法,并且不支持maxsize参数
Python编程:SQLAlchemy查询数据没有变化
遇到一个问题,使用一条相同的sql,多次查询数据库,每次数据都一样,而且数据库更新了,也没有查到新数据 经过Google,发现是SQLAlchemy的缓存机制导致的 设置隔离级别参数isolation_level 就可以解决