argparse
Документация достаточно хорошо , но оставляет несколько полезных деталей , которые не могут быть очевидны. (@Diego Navarro уже упоминал кое-что из этого, но я постараюсь немного расширить его ответ.) Основное использование выглядит следующим образом:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--my-foo', default='foobar')
parser.add_argument('-b', '--bar-value', default=3.14)
args = parser.parse_args()
Возвращаемый вами объект parse_args()
- это объект «Пространство имен»: объект, переменные-члены которого названы в соответствии с аргументами командной строки. Namespace
Объект как получить доступ к аргументам и значению , связанное с ними:
args = parser.parse_args()
print args.my_foo
print args.bar_value
(Обратите внимание, что argparse
в именах аргументов «-» заменяется подчеркиванием при именовании переменных.)
Во многих ситуациях вы можете использовать аргументы просто как флаги, которые не имеют значения. Вы можете добавить их в argparse следующим образом:
parser.add_argument('--foo', action='store_true')
parser.add_argument('--no-foo', action='store_false')
Выше будут созданы переменные с именем 'foo' со значением True и 'no_foo' со значением False соответственно:
if (args.foo):
print "foo is true"
if (args.no_foo is False):
print "nofoo is false"
Также обратите внимание, что вы можете использовать опцию «required» при добавлении аргумента:
parser.add_argument('-o', '--output', required=True)
Таким образом, если вы пропустите этот аргумент в командной строке, argparse
он сообщит вам, что он отсутствует, и остановит выполнение вашего скрипта.
Наконец, обратите внимание, что с помощью функции можно создать сложную структуру ваших аргументов vars
, если это облегчит вам жизнь.
args = parser.parse_args()
argsdict = vars(args)
print argsdict['my_foo']
print argsdict['bar_value']
Как вы видете, vars
возвращает dict с именами аргументов в качестве ключей и их значениями в качестве значений.
Есть много других опций и вещей, которые вы можете сделать, но это должно охватывать наиболее важные, распространенные сценарии использования.
sys.argv
аргумент, который вы хотите ...