python - 解决“EOF 市场未找到错误”PyPDF2
问题描述
我正在使用 PyPDF2 和 tika 从 .pdf 和 .htm 文件中提取文本。我遇到了以下错误:“PyPDF2.utils.PdfReadError: EOF marker not found”
我已经看到有关该问题的多个帖子,但没有一个包含解决方案。
这是我正在使用的代码:
from xlwt import Workbook
import PyPDF2, os
from tika import parser
wb = Workbook()
sheet1 = wb.add_sheet('Sheet 1')
sheet1.write(0, 0, 'file name')
sheet1.write(0, 1, 'file content')
pdfFiles = []
folderPath = 'C:/Users/Turing/Desktop/workingFiles' #! define the path for the folder including input files
for filename in os.listdir(folderPath):
if filename.endswith('.htm') or filename.endswith('.pdf'):
pdfFiles.append(filename)
pdfFiles.sort(key=str.lower)
row = 0
for filename in pdfFiles:
row = row + 1
#print(filename)
sheet1.write(row, 0, filename) # write the name of the file to column number 0 of output
filename = folderPath+'\\'+filename
pdfFileObj = open(filename, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
raw = parser.from_file(filename)
#print(raw['content'])
sheet1.write(row, 1, raw['content']) # write the content of the input doc to column number 1 of the output
wb.save('MRS.xls')
我已经上传了一个有问题的文件供您参考。
解决方案
您正在使用 PyPDF2.PdfFileReader 读取 HTML 文件,该文件需要 PDF 文件。可能最容易分裂成
pdfFiles = []
htmFiles = []
for filename in os.listdir(folderPath):
if filename.endswith('.pdf'):
pdfFiles.append(filename)
if filename.endswith('.htm'):
htmFiles.append(filename)
并分别解析它们。
推荐阅读
- javascript - 使用 localStorage 禁用 ondragover = "allowDrop (event) 或 draggable = true "
- html - 我想我在 freecodecamp.com 认证上发现了一个错误
- oracle - 如何在 Oracle 文本中转义 & - 包含?
- java - ND4J 分解的特征值不正确
- sql - 以下时区转换是否考虑夏令时?
- micronaut - Micronaut 的活跃度始终未知
- javascript - 如何使用选择显示隐藏的输入字段
- html - 如何使用百里香扩展我的模板?
- discord.py - discord.py 警告命令“数据未定义”
- python - 如何在 CSS 选择器中使用 Django 模板语法?