Что делает этот код Python: shell = (sys.platform! = "Win32")) - PullRequest
1 голос
/ 12 ноября 2009

Я не понимаю, что делает этот код, Я хочу запустить командную строку, в Mac OS X, код, который я использую, взят от кого-то, кто запускает командную строку Windows. Команда все еще выполняется, но я хотел бы знать, для чего предназначен sys.platform! = "Win32", и если мне нужно изменить его на что-то другое для Mac OS X. Кажется, что sys.platform не Win32 , но мне это не кажется.

return_code = subprocess.call(str(cline), shell=(sys.platform!="win32"))

Ответы [ 2 ]

6 голосов
/ 12 ноября 2009

Вот что делает и не делает этот код:

  • Не компилируется (синтаксическая ошибка - вам нужна запятая между аргументы), - больше нет.
  • Запускает подпроцесс и, если вы не на Win32 это запускает его через оболочку. аргумент "shell" может быть True или False и sys.platform != 'win32' также могут принимать значение True или False.
3 голосов
/ 12 ноября 2009

То же, что и:

if sys.platform!="win32":
    return_code = subprocess.call(str(cline), shell=True)
else
    return_code = subprocess.call(str(cline), shell=False)

см. документ подпроцесса (выполнить cline)

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