2013-02-27 3 views
1

Я работаю над именем программного обеспечения Foundry Nuke. У меня возникают проблемы при передаче параметров командной строки в Mac OSX.Аргументы командной строки Mac OSX

Если я использую приведенную ниже команду, она отлично работает и запускает программное обеспечение Nuke.

subprocess.Popen(['Application/Nuke6.3v8/Nuke6.3v8.app/Contents/MacOS/Nuke6.3v8'], stdin=subprocess.PIPE, stdout=subprocess.PIPE) 

Но если я добавлю аргументы в команду, это не сработает. subprocess.Popen(['Application/Nuke6.3v8/Nuke6.3v8.app/Contents/MacOS/Nuke6.3v8', '-t /.../somepath/init.py', '%s %s' % (someArg1, someArg2)], stdin=subprocess.PIPE, stdout=subprocess.PIPE)

любезно помощь.

Заранее спасибо

+0

Что вы подразумеваете под "не работает"? – Blender

ответ

0

Чтобы добавить аргументы, добавить дополнительные элементы в список:

subprocess.Popen([ 
    'Application/Nuke6.3v8/Nuke6.3v8.app/Contents/MacOS/Nuke6.3v8', 
    '-t', '/.../somepath/init.py', 
    some_arg_1, some_arg_2, 
], stdin=subprocess.PIPE, stdout=subprocess.PIPE) 
1

Каждый аргумент должен быть отдельный пункт в списке.

subprocess.Popen(['Application/Nuke6.3v8/Nuke6.3v8.app/Contents/MacOS/Nuke6.3v8', 
        '-t', '/.../somepath/init.py', # not '-t /.../somepath/init.py' 
        someArg1, someArg2,   # not '%s %s'%(someArg1, someArg2)' 
       ], stdin=subprocess.PIPE, stdout=subprocess.PIPE) 
+0

спасибо .... если у меня есть список в качестве аргумента, * someArgList не работает. – NarayaN

+0

Вы можете использовать только выделенное выражение как часть списка аргументов функции, а не в произвольном списке. Вы можете использовать '['Application ...', '-t', '/.../somepath/init.py'] + list (someArglist)'. – chepner

Смежные вопросы