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

使用PyPDF2批量转PDF为TXT仅提取最后一页,求解决方案

解决PDF批量转TXT仅提取最后一页的问题

你的代码只提取了PDF的最后一页,核心原因是直接获取了索引为x-1的页面(即最后一页),没有遍历所有页面内容。以下是修复后的方案:

修改后的代码

import os
import PyPDF2

# 目标目录
target_dir = "Documents/Python/"
for file in os.listdir(target_dir):
    if file.endswith(".pdf"):
        fpath = os.path.join(target_dir, file)
        # 打开PDF并读取所有页面内容
        with open(fpath, 'rb') as pdffileobj:
            pdfreader = PyPDF2.PdfFileReader(pdffileobj)
            total_pages = pdfreader.numPages
            full_text = ""
            # 循环遍历每一页,累加文本内容
            for page_num in range(total_pages):
                pageobj = pdfreader.getPage(page_num)
                full_text += pageobj.extractText() + "\n\n"  # 每页间加空行分隔,提升可读性
        # 生成对应的TXT文件路径
        newfpath = os.path.splitext(fpath)[0] + ".txt"
        # 将完整文本写入TXT文件
        with open(newfpath, "w", encoding="utf-8") as file1:
            file1.write(full_text)

关键改动说明

  • 新增全页面遍历逻辑:通过for page_num in range(total_pages)循环,逐个提取每一页的文本内容
  • 累加页面内容:用full_text变量拼接所有页面的文本,避免只保留最后一页数据
  • 优化路径生成:用os.path.splitext替代正则替换,避免文件名中包含多个.pdf字符串时出现错误
  • 规范文件操作:使用with语句自动管理文件开闭,同时改用w模式写入,确保每次运行生成全新的TXT文件,不会重复追加内容

内容的提问来源于stack exchange,提问作者stripes 123

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:55:32