По какой-то причине, когда я передаю опцию с использованием длинной формы, функция getopt не распознает ее должным образом. Есть идеи? Я прочитал здесь документацию http://docs.python.org/2/library/getopt.html, и, похоже, он не должен делать то, что он делает.Почему не работает getopt на python 2.7.5 mac os x
Я запускаю python 2.7.5 на mac os x для записи.
[[email protected]:~] python Script.py test --condition=foo --output-file abc.def
['test', '--condition=foo', '--output-file', 'abc.def']
[]
<type 'list'>
def main(argv):
try:
optlist, args = getopt.getopt(argv[1:], '', ['condition=', 'output-file=', 'testing'])
except getopt.GetoptError, msg:
logging.warning(msg)
return 1
print args
print optlist
print type(optlist)
я должен получать следующее, как указано в документации:
optlist [('--condition', 'Foo'), ('' --testing , ''), ('--output-файл', 'abc.def')]
Отсутствует импорт? – tintin
Нет. Я действительно импортировал getopt наверху. – jmtoung
Есть ли причина, по которой вы используете 'getopt'? Как говорится в [docs] (http://docs.python.org/2.7/library/getopt.html), вверху в большой ячейке: «Модуль getopt является парсером для параметров командной строки, API которых разработан чтобы быть знакомым пользователям функции C getopt().Пользователи, не знакомые с функцией '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'или '', библиотека/argparse.html # module-argparse). «Вы, очевидно, не эксперт' getopt', так зачем его использовать? – abarnert