Python 使用 PyPDF2 库解析 PDF 文件,处理格式不规范文件

import os
import PyPDF2

pdf_folder = r'D:\南巢\第六学期\大数据与会计分析\贵州茅台财务分析\年报'

# 获取所有pdf文件的路径
pdf_files = [os.path.join(pdf_folder, f) for f in os.listdir(pdf_folder) if f.endswith('.pdf')]

# 遍历每个pdf文件,将其转化为txt文件
for pdf_file in pdf_files:
    try:
        with open(pdf_file, 'rb') as f:
            # 添加参数 strict=False
            pdf_reader = PyPDF2.PdfFileReader(f, strict=False)
            text = '\n'.join([pdf_reader.pages[i].extract_text() for i in range(len(pdf_reader.pages))])
        txt_file = os.path.splitext(pdf_file)[0] + '.txt'
        with open(txt_file, 'w', encoding='utf-8') as f:
            f.write(text)
    except Exception as e:
        print(f'Error processing file: {pdf_file}, Error: {e}')

代码中添加了 strict=False 参数,能够帮助处理一些格式不规范的 PDF 文件。

错误信息:

Error processing file: D:\南巢\第六学期\大数据与会计分析\贵州茅台财务分析\年报\贵州茅台:2018年年度报告(改了一个科目名称.pdf

可能原因:

  • 该 PDF 文件可能存在格式不规范的地方,导致 PyPDF2 库无法正常解析。

解决方案:

  • 在读取 PDF 文件时,增加 strict=False 参数,允许 PyPDF2 库跳过一些格式不规范的地方。

注意事项:

  • strict=False 参数可能会导致解析结果不完整或出现错误,需要根据实际情况进行调整。
  • 可以尝试使用其他 PDF 解析库,例如 pdfminer.six,看看是否能解决问题。
  • 如果问题仍然存在,可以尝试修复 PDF 文件的格式,或使用其他方式提取文本信息。
Python 使用 PyPDF2 库解析 PDF 文件,处理格式不规范文件

原文地址: https://www.cveoy.top/t/topic/oSQy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录