Python 使用 PyPDF2 库解析 PDF 文件,处理格式不规范文件
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 文件的格式,或使用其他方式提取文本信息。
原文地址: https://www.cveoy.top/t/topic/oSQy 著作权归作者所有。请勿转载和采集!