У меня небольшая проблема с argparse
. У меня есть опция xlim
, которая является xrange
участка. Я хочу иметь возможность передавать номера, такие как -2e-5
. Однако это не сработает - argparse
интерпретирует это позиционный аргумент. Если я делаю -0.00002
, он работает: argparse
читает это как отрицательное число. Возможно ли иметь возможность читать в -2e-3
?Python Argparse: проблема с необязательными аргументами, которые являются отрицательными числами
код ниже, и пример того, как я бы запустить это:
./blaa.py --xlim -2.e-3 1e4
Если я следующее работает:
./blaa.py --xlim -0.002 1e4
Код:
parser.add_argument('--xlim', nargs = 2,
help = 'X axis limits',
action = 'store', type = float,
default = [-1.e-3, 1.e-3])
Хотя я могу заставить его работать таким образом, я бы очень хотел использовать научную нотацию. У кого-нибудь есть идеи?
Приветствия
Помогает ли цитирование '-2e-5'? – nmichaels
В соответствии с http://code.google.com/p/argparse/issues/detail?id=37 он должен быть исправлен. Проверьте, является ли версия argparse у вас более новой или такой же. – favoretti
@nmichaels Привет, вы имеете в виду «-2e-5»? К сожалению, это не работает, я думаю, что он все еще интерпретирует это как аргумент. Точная ошибка от './blah.py -xlim" -.2e-5 "1e5' isxx: ожидается 2 аргумента (ов). Если я использую \ - он думает, что это строка, а затем жалуется, потому что это должен быть float – Ger