2016-11-07 3 views
0

Как я могу вызвать ImageMagick's coalesce в командной строке Windows с помощью Python для следующей команды?Использование Python для вызова `ImageMagick` `-coalesce` на конкретном .gif через командную строку Windows

В настоящее время я использую следующие строки, чтобы перейти в каталог «Рабочий стол», а затем запустите функцию «coalesce» ImageMagick в файле .gif, который существует на рабочем столе («on.gif»). Эта команда разбивает .gif файл на отдельные кадры, сохраненные на рабочем столе (off0.png, off1.png, off2.png, ...)

os.system('cd C:\...\Desktop') 
os.system('convert on.gif -coalesce off%d.png') 

, но он дает мне ошибку: convert: no images defined 'off%d.gif' @ error/convert.c/COnvertImageCommand/3235. Когда я запускаю эту команду в оболочке Windows, она работает нормально. Я думаю, что ошибка заключается в том, как я передаю знак % в командную строку Windows.

+0

Был ли мой ответ разобрался с вашей проблемой? Если да, пожалуйста, подумайте о том, чтобы принять его как ваш ответ - нажав полый зеленый галочку/галочку рядом с подсчетом голосов. Если нет, скажите, пожалуйста, что не сработало, чтобы я или кто-то еще помог вам дальше. Благодарю. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

ответ

1

Каждый os.system() начинает новый отдельный процесс. Поэтому вначале не нужно менять каталог, а затем запускать другой процесс, который выполняется в другом каталоге.

Вместо этого, вам нужно изменить каталог и сделать ваши команды в том же процессе что-то вроде этого:

os.system('cd somewhere && convert something ...') 

Если ваш somehwere имеет пространства в нем, вам нужно будет заключить в двойные кавычки:

os.system('cd "C:\Users\path with space" && convert ...') 

Если Python не знает путь к ImageMagick «s convert, вам нужно будет поставить полный путь явно, что-то вроде:

os.system('cd somewhere && "C:\Programs X86\Imagemagick7.0.2\convert" ... ') 
+0

Это полезно, я этого не знал. Я все еще получаю ошибку «без изображений», упомянутую выше. – AaronJPung

+0

Имеет ли в вашем каталоге или имени файла пробелы? Если это так, вам нужны двойные кавычки ('' ... "') вокруг них. –

+0

Кроме того, у вас может не быть установлен PATH правильно, чтобы 'python' мог найти' convert.exe', поэтому вам может понадобиться полный путь, например '' C: \ Programs X86 \ ImageMagick \ bin \ convert '. что-то " –