系统相关
首页 > 系统相关> > Python pdftotext ShellError使用textract

Python pdftotext ShellError使用textract

作者:互联网

当我在包含PDF文件的目录上运行以下Python脚本时,我不断收到此错误:

ShellError: The command pdftotext "path/to/pdf/title.pdf" - failed with exit code 1
————- stdout ————-
————- stderr ————-
‘pdftotext’ is not recognized as an internal or external command,
operable program or batch file.

我已经验证pdf2text和PDFMiner已正确安装.这是我第一次使用textract,它适用于所有其他文件类型(Word文档,PowerPoint文档,Excel文档等).当pdf2text是实际库时,为什么进程调用pdftotext?

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链接,所以我觉得这里没有正确的链接,但here’s a link我在维基百科页面上找到了一个windows二进制文件.从我的能力来看,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

希望这有帮助!

标签:python,pdf,text-extraction
来源: https://codeday.me/bug/20190702/1360777.html