pdfplumber 内存占用(大 pdf 文件崩溃)

pdfplumber memory hogging (crash with large pdf files)

使用 pdfplumber 从大型 pdf 文件中提取文本会导致崩溃。

with pdfplumber.open("data/my.pdf") as pdf:
    for page in pdf.pages:
        **do something**

解决方案发现于: https://github.com/jsvine/pdfplumber/issues/193 新:

with pdfplumber.open("data/my.pdf") as pdf:
    for page in pdf.pages:
        run_my_code()
        page.flush_cache()

旧:

with pdfplumber.open("data/my.pdf") as pdf:
    for page in pdf.pages:
        run_my_code()
        del page._objects
        del page._layout

这两个好像是每次循环后最占内存的一个,删掉有助于不占电脑内存。

如果这不起作用,请尝试强制垃圾收集器清理它们。

import gc
with pdfplumber.open("data/my.pdf") as pdf:
    for page in pdf.pages:
        run_my_code()
        del page._objects
        del page._layout
        gc.collect()