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

无法读取PDF文件并提取文本的技术问题咨询

代码问题排查与修复

存在的问题

  • 模块导入缺失:代码中使用pdf.PdfReader但未导入PyPDF2模块,运行时会抛出NameError。
  • 循环逻辑错误:for page in reader(len(reader.pages))是完全错误的写法,PdfReader实例不能作为函数调用,正确的遍历方式应该是直接迭代reader.pages或者用range生成索引。
  • 变量名冲突:循环内部重新赋值page=reader.pages[page],变量名重复会导致逻辑混乱。
  • 冗余字符串转换:page.extract_text()本身返回字符串(无文本时返回None),用str()包裹没必要,反而可能把None转成字符串"None",影响结果。

修复后的代码

# 先导入必要模块
from PyPDF2 import PdfReader  # 或者用 import PyPDF2 as pdf,对应代码里的pdf.PdfReader

def input_pdf_text(uploaded_file):
    # 若uploaded_file是二进制流对象(如Streamlit上传的文件),直接传入即可
    reader = PdfReader(uploaded_file)
    text = ""
    
    # 直接遍历PDF的每一页
    for page in reader.pages:
        # 处理页面无文本的情况,避免添加"None"字符串
        page_text = page.extract_text() or ""
        text += page_text
    
    return text

补充说明

  • 如果uploaded_file是本地文件路径,需要改成用open(uploaded_file, 'rb')打开后传入PdfReader。
  • 若PDF是扫描件(页面为图片格式),PyPDF2无法提取文本,需要搭配OCR工具(如pytesseract)处理。

内容的提问来源于stack exchange,提问作者Abinash Das

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:42:05