Python 中处理 PDF 文件的生成器与上下文管理器应用
1. 生成器的特性与应用
生成器是 Python 中一个强大的工具,它具有独特的特性,在处理 PDF 文件时能发挥重要作用。
1.1 生成器只能产生一次数据
生成器只能产生一次数据项。例如,若尝试再次使用 gen
或 gen2
生成器,会发现它们不会再产生更多值:
>>> list(gen)
[]
>>> list(gen2)
[]
在使用 PDFMiner3k 包中的生成器表达式时,必须牢记这一规则。生成器表达式只能被消费一次,其惰性特性使其非常适合在纯 Python 应用中处理大型、复杂的 PDF 文档。
1.2 生成器函数的编写
生成器函数看起来与普通函数很相似,但有一个重要区别:生成器函数包含 yield
语句。每次执行 yield
语句时,会产生一个新的值,这个值可以被 list()
函数或 for
循环消费。
以下是一个生成器函数的示例:
def gen_function(start):
c = start
for i in range(10):
yield c
if c % 2 =