Проблема подпроцесса Python в Windows - PullRequest
2 голосов
/ 07 февраля 2012

Я пытаюсь написать скрипт на Python для преобразования множества изображений.

Это что-то вроде следующего кода (после огромной минимизации):

#!/usr/bin/python
# -*- coding: utf-8 -*-
from subprocess import call

cmd = ' '.join(['convert.exe', '-resize', '110', 'foo\\a.jpg', 'bar\\a.jpg'])
print cmd
call(cmd)

Я получаю ошибку ниже после ее выполнения:

Parameter not valid - 110

Хотя при копировании / вставке строки, полученной из сценария в командной строке, преобразование изображения работает отлично. Что я пропустил?

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

Я бы сказал, что ошибка, скорее всего, является результатом двух вещей

  1. В команде вызова попробуйте использовать shell=True в качестве второго аргумента.
  2. Вы используете относительные пути, и рабочий каталог для Python может отличаться от используемого в командной оболочке cmd.
0 голосов
/ 07 февраля 2012

В Windows XP есть команда командной оболочки с именем convert. Когда я передаю вашу команду, я получаю то же сообщение об ошибке, которое вы видите. Я подозреваю, что он вызывается вместо вашего convert.exe.

0 голосов
/ 07 февраля 2012

Вы уверены, что convert.exe, который вызывает ваш скрипт, тот же, что вы вызываете из командной строки?Из своего горького опыта я всегда использовал полный путь к исполняемому файлу, который я хочу вызвать из скрипта, Python или иным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...