pyPdf выдает это исключение:
pyPdf.utils.PdfReadError: маркер EOF не найден
Мне не нужно исправлять pyPdf, мне просто нужно получить ошибку EOF, чтобы вызватьблок «кроме» для выполнения и пропуска файла, но он не работает.Это по-прежнему приводит к остановке работы программы.
Справочная информация:
Программа пакетного распознавания текста для PDF-файлов
Python, pyPdf, Adobe PDF OCRошибка: неподдерживаемый фильтр / lzwdecode
... сага продолжается.
Я получил 10000 PDF-файлов в папке.Некоторые OCRd, некоторые нет.Не могу их различить.Шаг 1 состоял в том, чтобы выяснить, какие из них не являются OCRd, а только OCR (подробности см. В других темах).
Так что я использую pyPdf.Я получаю некоторые исключения, связанные с нераспознанными символами и неподдерживаемыми фильтрами, когда я пытаюсь прочитать текст.Так что я предположил, что если он выдает исключение, в нем есть текст, а затем он не попадает в список.Проблема решена, верно?Примерно так:
from pyPdf import PdfFileWriter, PdfFileReader
import sys, os, pyPdf, re
path = 'C:\Users\Homer\Documents\My Pdfs'
filelist = os.listdir(path)
has_text_list = []
does_not_have_text_list = []
for pdf_name in filelist:
pdf_file_with_directory = os.path.join(path, pdf_name)
pdf = pyPdf.PdfFileReader(open(pdf_file_with_directory, 'rb'))
print pdf_name
for i in range(0, pdf.getNumPages()):
try:
pdf.write("%%EOF")
content = pdf.getPage(i).extractText()
does_it_have_text = re.findall(r'\w{2,}', content)
if does_it_have_text == []:
does_not_have_text_list.append(pdf_name)
print pdf_name
else:
has_text_list.append(pdf_name)
except:
has_text_list.append(pdf_name)
print does_not_have_text_list
Но затем я получаю эту ошибку:
pyPdf.utils.PdfReadError: Маркер EOF не найден
Похоже, что это много (изgoogle):
http://pdfposter.origo.ethz.ch/node/31
Я думаю, это означает, что pyPdf открыл файл, попытался обработать текст, вызвал любое исключение, сделал исключение: блок, но теперь не можетперейдите к следующему шагу, поскольку он / она не знает, что файл был заполнен.
Существуют другие потоки, подобные этому, и они утверждают, что это было исправлено, но, похоже, это не так.
Тогда у кого-то есть функция, которая сначала записывает символ EOF в .pdf.
http://code.activestate.com/lists/python-list/589529/
Я застрял в строке "pdf.write (" %% EOF ")", чтобы попытаться имитировать это, но без кубиков.
Итак, как мне получить эту ошибку для запуска блока исключений?Я также использую wing IDE, поэтому, если есть способ использовать отладчик, чтобы просто пропустить эти файлы, это тоже возможно.Thx.