CalledProcessError.命令'['pdftotext','-layout','coburns.pdf','-']'返回非零退出状态1?命令'['pdftotext', '-layout', 'coburns.pdf', '-']'返回非零的退出状态1?

问题描述 投票:0回答:1

当运行这部分代码时,我一直得到一个错误。我试过实现 universal_newlines=True 根据 subprocess.check_output 文档,但我得到了同样的错误。为什么会出现这种情况,我该怎么做才能解决?

for filename in os.listdir(directory):
    if filename in new_list:
        pdf = filename
        output = subprocess.check_output(['pdftotext', '-layout', pdf, '-'], universal_newlines=True).decode()
        pages = output.strip('\f').split('\f')
        page = pages[-1]

错误信息。

---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
<ipython-input-153-adc4a58d7f21> in <module>
      9     if filename in new_list:
     10         pdf = filename
---> 11         output = subprocess.check_output(['pdftotext', '-layout', pdf, '-'], universal_newlines=True).decode()
     12         pages = output.strip('\f').split('\f')
     13         page = pages[-1]

/usr/lib/python3.8/subprocess.py in check_output(timeout, *popenargs, **kwargs)
    409         kwargs['input'] = '' if kwargs.get('universal_newlines', False) else b''
    410 
--> 411     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
    412                **kwargs).stdout
    413 

/usr/lib/python3.8/subprocess.py in run(input, capture_output, timeout, check, *popenargs, **kwargs)
    510         retcode = process.poll()
    511         if check and retcode:
--> 512             raise CalledProcessError(retcode, process.args,
    513                                      output=stdout, stderr=stderr)
    514     return CompletedProcess(process.args, retcode, stdout, stderr)

CalledProcessError: Command '['pdftotext', '-layout', 'coburns.pdf', '-']' returned non-zero exit status 1.
python error-handling subprocess pdftotext re
1个回答
0
投票

正如评论中所说。check_output 其实是为了提高 CalledProcessError 当进程返回的代码不是 0.

这里的代码是 1这表明 pdftotext 不能打开pdf,不是因为它不正确,就是因为找不到它。

您正在使用 os.listdir,它产生的文件名,是相对于 directory 参数,它不一定与当前工作目录中的 check_output 将推出 pdftotext 默认情况下。

我认为有三种解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.