Передача строки с аргументом с помощью argparse

#python #python-2.7 #argparse

#python #python-2.7 #argparse

Вопрос:

Я читал о argparse модуле в Python, а также провел небольшое исследование, но не смог найти чистую технику для передачи строки через аргумент.

В принципе, я хотел бы, чтобы это работало:

 myProg -a=FOO
  

а затем иметь возможность выборки строки "FOO" .

Я вроде бы заставил это работать, но myProg -a FOO передал " FOO" бы в пространство имен arguments . Вероятно, я могу выполнить вторичную проверку, но просто интересно, есть ли правильный способ сделать это, ограничить формат аргумента -a= и перехватить что-либо еще как ошибку.

Комментарии:

1. argparse предполагает командные строки в стиле Unix и -a=FOO является необычным форматом для этого (обычно это будет -aFOO or --aaa FOO ). Вторичная проверка, вероятно, ваш лучший вариант.

2. @Sneftel Я думаю, вы имели в виду -a FOO и --a=FOO .

3. Оба варианта приемлемы, но это хороший момент.

4. Спасибо. Я планирую заменить FOO на путь к каталогу. Это поможет? Может быть, ограничение типа «dir»?

5. --a='/home/me/dir/afile' должно сработать. Проверьте sys.argv , как оболочка разделяет вашу строку аргумента.