我试图运行python subprocess.run函数来执行以下命令:
pdftoppm -jpeg -f 1 -scale-to 200 data/andromeda.pdf and-pagepdftoppm -是poppler实用程序的一部分,它从pdf文件生成图像。
文件数据/andromeda.pdf存在。文件夹数据与python脚本和/或运行命令的位置相同。命令基本上会生成一个jpeg文件,从页面1 (-f 1) 200-f到给定文件的- page -1.jpeg格式(所谓ppmtroot)。
长话短说:命令行中的按预期工作,也就是说,如果我从zsh或bash调用上面的命令,手动地生成缩略图。但是,如果我从python模块运行-它失败了,它返回99个错误代码!
下面是python代码(文件名为sc_02_thumbnails.py):
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)调用我的脚本:
$ chmod +x ./sc_02_thumbnauils.py
$ ./sc_02_thumbnails.py data/andromeda.pdf and-page还有..。缩略图生成失败!我尝试过从zsh和bash执行python脚本:(我做错了什么?
发布于 2018-12-05 09:17:09
报价是错误的,你应该有'-f', '1',等
https://stackoverflow.com/questions/53628699
复制相似问题