Логический аргумент для скрипта
в Python я понимаю, как int и str аргументы могут быть добавлены в Скрипты.
parser=argparse.ArgumentParser(description="""Mydescription""")
parser.add_argument('-l', type=str, default='info', help='String argument')
parser.add_argument('-dt', type=int, default ='', help='int argument')
что это за переключатели?
в основном я хочу передать флаг в свой скрипт, который скажет скрипту, нужно ли делать определенное действие или нет.
3 ответа:
можно использовать
action
Сstore_true
/store_false
, или вы можете использовать int и позволить неявному приведению проверить логическое значение.С помощью
action
, вы не прошли бы--foo=true
и--foo=false
аргумент, вы бы просто включить его, если он будет установлен в true.python myProgram.py --foo
На самом деле я думаю, что вы хотите-это
parser.add_argument('-b', action='store_true', default=False)
import distutils.util ARGP.add_argument('--on', '-o', type=distutils.util.strtobool, default='true')
пример вызова:
$ ./myscript # argp.on = 1 $ ./myscript --on=false # argp.on = 0 $ ./myscript --on=False # argp.on = 0 $ ./myscript --on=0 # argp.on = 0 $ ./myscript --on=1 # argp.on = 1 $ ./myscript -o0 # argp.on = 0 $ ./myscript -o false # argp.on == 0
Я должен упомянуть, что вы также можете привязать аргумент к локальной функции-оболочке, чтобы обрабатывать некоторые другие точные совпадения строк, если вы хотите поддерживать такие значения, как "да" и "нет". вы также можете попробовать интерпретировать ввод как yaml, который также может обрабатывать yes/no. я не делал этого в то время, хотя, и я думаю, что в последнее время я сосать взаимоисключающие аргументы с тем же
dest
ценность--no-option
Сaction='store_false'
и один--option
Сaction='store_true'