首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >subprocess.run简单场景失败

subprocess.run简单场景失败
EN

Stack Overflow用户
提问于 2018-12-05 09:10:14
回答 1查看 486关注 0票数 1

我试图运行python subprocess.run函数来执行以下命令:

代码语言:javascript
复制
 pdftoppm -jpeg -f 1 -scale-to 200 data/andromeda.pdf and-page

pdftoppm -是poppler实用程序的一部分,它从pdf文件生成图像。

文件数据/andromeda.pdf存在。文件夹数据与python脚本和/或运行命令的位置相同。命令基本上会生成一个jpeg文件,从页面1 (-f 1) 200-f到给定文件的- page -1.jpeg格式(所谓ppmtroot)。

长话短说:命令行中的按预期工作,也就是说,如果我从zsh或bash调用上面的命令,手动地生成缩略图。但是,如果我从python模块运行-它失败了,它返回99个错误代码!

下面是python代码(文件名为sc_02_thumbnails.py):

代码语言:javascript
复制
import subprocess
import sys


def main(filename, ppmroot):
    cmd = [
        'pdftoppm',
        '-f 1',
        '-scale-to 200',
        '-jpeg',
        filename,
        ppmroot
    ]
    result = subprocess.run(
        cmd,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE
    )
    if result.returncode:
        print("Failed to generate thumbnail. Return code: {}. stderr: {}".format(
            result.returncode,
            result.stderr
        ))
        print("Used cmd: {}".format(' '.join(cmd)))
        sys.exit(1)
    else:
        print("Success!")         


if __name__ == "__main__":
    if len(sys.argv) > 2:
        filename = sys.argv[1]
        ppmroot = sys.argv[2]
    else:
        print("Usage: {} <pdffile> <ppmroot>".format(sys.argv[0]))
        sys.exit(1)

    main(filename, ppmroot)

这里是repo,它还包括data/andromeda.pdf文件。我用as (来自zsh)调用我的脚本:

代码语言:javascript
复制
 $ chmod +x ./sc_02_thumbnauils.py
 $ ./sc_02_thumbnails.py data/andromeda.pdf  and-page

还有..。缩略图生成失败!我尝试过从zsh和bash执行python脚本:(我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-05 09:17:09

报价是错误的,你应该有'-f', '1',

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

https://stackoverflow.com/questions/53628699

复制
相关文章

相似问题

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