当我在包含PDF文件的目录上运行以下Python脚本时,始终出现此错误:



我已验证pdf2text和PDFMiner是否已正确安装。这是我第一次使用textract,它在所有其他文件类型(Word文档,PowerPoint文档,Excel文档等)上都可以很好地工作。当pdftotext是实际库时,为什么进程调用pdf2text

import os
import os.path
import textract

pdf_path = 'path/to/pdf/'

for fname in os.listdir(pdf_path):
    if os.path.isfile(pdf_path+fname ):
        f = textract.process(pdf_path+fname )
        if 'string' in f:
            print fname

谢谢!

最佳答案

我自己已经解决了这个问题。据我了解,困惑在于pdftotext是在Linux中流行的命令实用程序,而pdf2text是PDFMiner程序包的包装。我的poppler和pdftotext的Windows二进制文件来自archive.org链接,因此在这里我感觉链接不正确,但是我在Wikipedia页面上找到了Windows二进制文件here's a link。据我所知,pdftotext往往比pdfMiner提供更好的输出。我遇到的问题是生成与您收到的错误相同的错误是pdftotext.exe已安装,并且在我的路径中,但是如果我不通过cmdline启动python脚本,则会收到错误。

如果最终下载了它,它会附带一些其他不错的实用程序,例如pdftohtml和pdftops。个人最喜欢的是pdftotext -layout whatever.txt,它将以明文形式将pdf打印到stdout并输出所有内容。

tl; dr 尝试运行打开cmdline并运行程序。如果您仍然可以尝试(1)安装Windows二进制文件(假设您在Windows上),或者(2)尝试使用以下命令更新textract

pip install textract --upgrade

希望有帮助!

08-07 16:32