我在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'])
答案 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')