pyPdf拋出此異常:的Python,pyPdf OCR錯誤:pyPdf.utils.PdfReadError:未找到EOF標記
pyPdf.utils.PdfReadError:找不到
EOF標記我並不需要修復pyPdf ,我只需要獲取EOF錯誤以導致執行「except」塊並跳過該文件,但它不起作用。它仍然導致程序停止運行。
背景:
Python, pyPdf, Adobe PDF OCR error: unsupported filter /lzwdecode
...的傳奇仍在繼續。
我在一個文件夾中獲得了10,000個pdf文件。一些OCRd,一些沒有。不能告訴他們分開。第一步是找出哪些不是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標記好像說到了很多(從谷歌):
http://pdfposter.origo.ethz.ch/node/31
我認爲這意味着pyPdf打開文件,嘗試在文本處理中引發任何異常,除了:block,但現在無法進入下一步B/C它不知道該文件已經被支持。
還有像這樣的其他線程,他們聲稱這已被修復,但它似乎並沒有。
然後有人有一個功能,在這裏他們先將EOF字符寫入.pdf。
http://code.activestate.com/lists/python-list/589529/
我停留在 「pdf.write(」 %% EOF 「)」 行,試圖模擬天生這一點,但沒有骰子。
所以我怎麼得到那個錯誤來運行except塊呢?我也使用wing IDE,所以如果有一種方法可以使用調試器跳過這些文件,那也是可能的。謝謝。
單詞,兒子!謝謝。爸爸:^) – PatentDeathSquad 2011-05-21 04:39:22
沒問題, – 2011-05-21 04:40:36