python中ghostscript的语法

时间:2010-11-17 03:52:53

标签: python popen ghostscript

我在Linux上安装了python-ghostscript。我可以从命令行运行gs,它将从pdf创建一个jpg。以下是有效的代码:

~$ gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -sOutputFile=/home/user/output.jpg /home/user/downloads/test.pdf

我试图在Python中运行该过程,但我无法获得语法。我没有错,但没有任何反应。我试过阅读Popen / subprocess,但我不明白为什么我调用的gs进程没有运行并创建文件。

output = Popen(['gs','-dSAFER','-dNOPAUSE','-dBATCH','-sDEVICE=jpeg','-sOutputFile=/home/user/output2.jpg /home/user/downloads/test.pdf'])

3 个答案:

答案 0 :(得分:2)

您的最后两个参数已加入,因此无法工作;它实际上与在您的终端gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg '-sOutputFile=/home/user/output.jpg /home/user/downloads/test.pdf'中运行相同,但您不希望它工作。

将最后两个分开,它应该有效:

output = Popen(['gs', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=jpeg', '-sOutputFile=/home/user/output2.jpg', '/home/user/downloads/test.pdf'])

答案 1 :(得分:1)

要测试出错的地方,您可以像这样管道标准输出:

import sys, subprocess

args = ['gs','-dSAFER','-dNOPAUSE','-dBATCH','-sDEVICE=jpeg','-sOutputFile=/home/user/output2.jpg /home/user/downloads/test.pdf']
output = Popen( args, stdout = sys.stdout, stderr = sys.stderr )

答案 2 :(得分:1)

这工作(python):

os.system('gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=/home/user/output2.jpg /home/user/Downloads/test.pdf')