You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python将PDF文本提取到TXT文件时出现提取错误如何解决

PDF文本提取异常原因及解决办法

问题根因

你当前的代码逻辑没有错误,出现缺字、间距异常是PyPDF2自身的文本提取能力局限性导致的:PyPDF2对非标准编码字体、带复杂排版(比如分栏、嵌入式特殊字体、字符间距自定义)的原生PDF适配度低,很容易出现字符丢失、空格错位的问题。

优化方案

方案1:替换为pdfplumber库(优先推荐,适配绝大多数原生PDF场景)

pdfplumber底层基于pdfminer.six开发,文本提取准确率远高于PyPDF2,对中文、特殊排版的兼容性更好,适配你后续批量处理1000份文件的需求。

  • 安装命令:pip install pdfplumber
  • 单文件提取示例代码:
import pdfplumber
from pathlib import Path

# 确保输出目录存在
output_dir = Path("Extracted")
output_dir.mkdir(exist_ok=True)

with pdfplumber.open(Path('C:/Users/Lui/Desktop/Test/file1.pdf')) as pdf:
    with open(output_dir / "extractPDF.txt", "w", encoding="utf-8") as text_file:
        # 遍历所有页
        for page in pdf.pages:
            # 提取文本,默认会自动优化空格
            page_content = page.extract_text()
            print(page_content)
            text_file.write(page_content + "\n")

方案2:扫描版PDF适配

如果你要处理的PDF是扫描件(图片转的PDF,没有内置文本层),需要用OCR工具提取,推荐使用pytesseract配合pdf2image实现,提前安装好Tesseract OCR引擎即可。

批量处理注意事项

后续处理1000份文件时,建议增加以下逻辑避免运行中断:

  • 遍历目标文件夹下所有PDF文件时增加后缀过滤,避免误处理其他格式文件
  • 增加异常捕获逻辑,记录处理失败的文件路径,不需要因为单个文件报错终止全部任务
  • 统一指定文件编码为utf-8,避免不同系统下的编码乱码问题

内容的提问来源于stack exchange,提问作者Lui Hellesoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:24:04