bsh*_*ehy 5 python pdf text-extraction
当我在包含PDF文件的目录上运行以下Python脚本时,始终出现此错误:
ShellError:命令
pdftotext "path/to/pdf/title.pdf" -失败,退出代码为1 ------------- stdout ------------- ------------- stderr -------------'pdftotext'不被识别为内部或外部命令,可操作程序或批处理文件。
我已验证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
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 2
我自己刚刚处理完这个问题。据我了解,令人困惑的是pdftotext是 Linux 中流行的命令实用程序,而 pdf2text 是 PDFMiner 包的包装器。我的 poppler 和 pdftotext 的 Windows 二进制文件来自 archive.org 链接,因此我觉得在这里链接到它不正确,但这是我在 wikipedia 页面上找到的 Windows 二进制文件的链接。据我所知,pdftotext 往往比 pdfMiner 提供更好的输出。我遇到的问题是生成与您收到的相同的错误,该错误已pdftotext.exe安装,并且在我的路径中,但如果我没有通过 cmdline 启动 python 脚本,我会收到错误。
如果您最终下载了它,它还附带了一些其他不错的实用程序,例如 pdftohtml 和 pdftops。不过,个人最喜欢的是pdftotext -layout whatever.txt将 pdf 以纯文本形式打印到标准输出,所有内容都就位。
tl;dr尝试运行打开命令行并运行该程序。如果您仍然可以尝试 (1) 安装 Windows 二进制文件(假设您使用的是 Windows)或 (2) 尝试使用以下命令更新文本
pip install textract --upgrade
Run Code Online (Sandbox Code Playgroud)
希望这有帮助!