Синтаксис 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 )
Другие вопросы по тегам