Синтаксис ghostscript в питоне
Я установил Python-Ghostscript на Linux. Я могу запустить GS из командной строки, и он создаст JPG из PDF. Вот код, который работает:
~$ 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 ответа
Ваши последние два параметра объединены, поэтому он не может работать; это фактически так же, как работает в вашем терминале 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'])
Это сработало (питон):
os.system('gs -dSAFER -dNOPAUSE -dQUIET -dBATCH -sDEVICE=jpeg -sOUTPUTFILE=/home/user/output2.jpg /home/user/Downloads/test.pdf')
Чтобы проверить, что идет не так, вы можете передать стандартный вывод следующим образом:
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 )