首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python,EOF OCR错误: pyPdf.utils.PdfReadError:找不到pyPdf标记

Python,EOF OCR错误: pyPdf.utils.PdfReadError:找不到pyPdf标记
EN

Stack Overflow用户
提问于 2011-05-21 12:28:46
回答 1查看 5K关注 0票数 2

pyPdf抛出此异常:

pyPdf.utils.PdfReadError:找不到EOF标记

我不需要修复pyPdf,我只需要获得EOF错误来导致"except“块执行并跳过文件,但它不起作用。它仍然会导致程序停止运行。

背景:

Batch OCR Program for PDFs

Python, pyPdf, Adobe PDF OCR error: unsupported filter /lzwdecode

..。这个传奇故事还在继续。

我在一个文件夹里有一万个pdf文件。一些OCRd,一些不是。第一步是找出哪些不是OCRd,只有那些不是OCR (详情请看其他帖子)。

所以我使用的是pyPdf。当我尝试阅读文本时,我得到了一些与无法识别的字符和不支持的过滤器相关的异常。所以我猜测如果它抛出一个异常,它会有一些文本在里面,然后它就不会出现在列表中。问题解决了,对吧?如下所示:

代码语言:javascript
复制
      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打开了文件,进行了文本处理,引发了任何异常,执行了except:块,但现在无法进入下一步b/c它不知道文件是否需要。

还有其他类似的线程,他们声称这个问题已经解决了,但似乎没有。

然后,有人在这里有一个函数,他们首先将EOF字符写入.pdf。

http://code.activestate.com/lists/python-list/589529/

我在"pdf.write("%%EOF")“行中尝试模仿它,但没有成功。

那么,我如何获得运行except块的错误呢?我也在使用wing IDE,所以如果有一种方法可以使用调试器跳过这些文件,那也是可能的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-05-21 12:36:51

将您的pyPdf调用也放入try/except块中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6079593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档