2010-11-17 96 views
1

我在Linux上安装了python-ghostscript。我可以从命令行运行gs,它将从pdf创建一个jpg。这是代码的作品:ghostscript在Python中的语法

~$ 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']) 

回答

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) 
+0

感谢,我试过了,它写了>> GPL Ghostscript的8.71 ...加上一些版权信息。回车键让我回到Python提示符。没有创建文件。 – Robin 2010-11-18 04:20:51

+0

@Robin:看到我的回答;尝试运行它没有文件名,这就是你会得到。 – 2010-12-02 03:32:57

1

这个工作(蟒蛇):

os.system('gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=/home/user/output2.jpg /home/user/Downloads/test.pdf') 
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'])