argparse¶
import argparse
import os
import sys
arg_parser = argparse.ArgumentParser(description='arg parser description')
my_parser.add_argument(
'Path',
metavar='path',
type=str,
help='the path',
)
my_parser.parse_args(['/home/ilnurgi/'])
# Namespace(Path='/home/ilnurgi/')
my_parser.parse_args([])
# usage: script.py [-h] path
# script.py: error: the following arguments are required: path
my_parser.parse_args([-h])
"""
usage: script.py [-h] path
arg parser description
positional arguments:
path the path
optional arguments:
-h, --help show this help message and exit
"""
Action()¶
- class
argparse.
Action
(option_strings, dest, nargs=None, const=None, default=None, type=None, choises=None, required=None, help=None, metavar=None)¶ Действие для аргумента
class MyAction(Action): def __init__(self, option_strings, dest, nargs, **kwargs): """""" def __call__(self, parser, namespace, values, option_string=None): """""" arg_parser.add_argument('-i', '--input', action=MyAction, type=int)
ArgumentParser()¶
- class
argparse.
ArgumentParser
(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True)¶ prog - название программы, которое будет отображаться в консоли. По умолчанию будет название скрипта
usage - текст примера использования
description - описание программы, которое будет выводиться в консоли
epilog - текст, который будет выведен в консоли после всей информации
parents - список
argparse.ArgumentParser()
ключи которой будут включены в текущий объектformatter_class - объект, форматирующий вывод сообщения помощи.
argparse.HelpFormatter()
argparse.RawDescriptionHelpFormatter()
argparse.RawTextHelpFormatter()
argparse.ArgumentDefaultsHelpFormatter()
argparse.MetavarTypeHelpFormatter()
prefix_chars - префикс для параметрв
fromfile_prefix_chars - префикс для параметра, который указывает на файл с параметрами. Если параметров много, то можно их передать через файл.
allow_abbrev - учитывать абреавитуры Например если есть аргумент –input, то с консоли его можно перадать и как –input, и как –inpu, –inp, –in.
add_help - добавить автоматический параметр -h, хелпер.
arg_parser = ArgumentParser( prog='myprog', description='argparse description', usage='%(prog)s [options] path', epilog='from ilnurgi', prefix='/', fromfile_prefix_chars='@', ) arg_parser.parse_args(['@params.txt']) # Namespace()
-
add_argument
(...values, action='store', nargs, const, default, type, choises, required, help, metavar, dest)¶ Добавляет параметр в парсер
values - параметры для парсинга, если указан без префикса, то параметр считается как позиционный
action - что делать с параметром
store - сохранить в сам объект
store_const - если параметр указан, то взять константу из парсера
store_true - если параметр указан, то значение будет False
store_false - если параметр указан, то значение будет True
append - может быть указано несколько раз, все праметры будут собраны в список
append_const - может быть указано несколько раз, константный значение парсера собрать в список
count - сколько раз параметр был указан
help - показать хелп и выйти
version - показать версию программы и выйти
argparse.Action()
- свой обработчик
nargs - указывает количесвто параметров, которое должно быть передано
число - конкретное значение
? - одно значение
* - 0 или несколько
1 или несколько
argparse.REMAINDER - оставшиеся аргументы
const - значение по умолчанию, либо callable объект, который вернет значение
default - значение по умолчанию, либо callable объект, который вернет значение
type - тип значения
choises - перечисление возможных значений
required - булево, поле обязательно
help - текст помощи
metavar - доп информация по атрибуту, например для поля с датой формат даты можно указать
dest - название переменной, куда поместим параметр
# позиционный аргумент Path, обязательный arg_parser.add_argument( 'Path', metavar='path', type=str, help='the path', ) # позиционный необязательный аргумент arg_parser.add_argument( 'Path', metavar='path', type=str, help='the path', # за счет этого параметр не обязательный nargs='?' ) # опциональный аргумент -v, --verbose arg_parser.add_argument( '-v', '--verbose', action='store_true', help='optional argument', ) arg_parser.parse_args(['/home/ilnurgi/']) # Namespace(Path='/home/ilnurgi/')
arg_parser.add_argument( '--input', action='store', type='int', required=True, ) arg_parser.parse_args(['--input', 42]) # Namespace(input=42) arg_parser.parse_args(['--inpu', 42]) # Namespace(input=42) arg_parser.parse_args(['--inp', 42]) # Namespace(input=42) arg_parser.parse_args(['--in', 42]) # Namespace(input=42)
arg_parser.add_argument('-b', action='store_const', const=42) arg_parser.parse_args(['-b']) # Namespace(b=42)
-
add_argument_group
(title=None, description=None)¶ group = arg_parser.add_argument_group() group.add_argument()
-
add_subparsers
(title=None, description=None, prog=None, parser_class=None, action=None, option_string=None, dest=None, required=None, help=None, metavar=None)¶ subparsers = arg_parser.add_subparsers(help='subparser') first_subparser = subparsers.add_parser() first_subparser.add_argument()
-
format_help
()¶
-
format_usage
()¶
-
get_default
(key)¶ Возвращает значение по умолчанию для ключа
-
parse_args
(args=None, namespace=None)¶ Парсит аргументы
args_parsed = arg_parser.parse_args()
-
print_help
()¶ Выводит текст с текстом помощи
-
print_usage
()¶
-
set_defaults
()¶ Устанавливает параметры по умолчанию