Форум сайта python.su
Как сконструировать вот такой парсинг:
someprog [-h] [([-f FROM] [-t TO]) | --period PERIOD]
usage: someprog [-h] [-f FROM] [-t TO] [--period PERIOD]
parser = argparse.ArgumentParser( description="%(prog)s - Utility to tisplays information about historical xxxx usage", epilog="Run %(prog)s", prog="someprog") parser.add_argument('-f', '--from', help='run report from date and time in YYYY-MM-DD HH:MM format; if not present last 10 minutes ' 'are assumed') parser.add_argument('-t', '--to', help='run report up to date and time in YYYY-MM-DD HH:MM format; if not present, reports ' 'results up to now') parser.add_argument('--period', help='time period; specify minutes with m, h - hours, days with d, and values: today, ' 'yesterday; 5m - last 5 minutes, 4h -- last four hours, 2d - last 2 days, as well as today')
Офлайн
Внутри группы полученной с помощью add_mutually_exclusive_group() можно создавать вложенные группы
Кстати
([-f FROM] [-t TO])
Отредактировано scopichol (Сен. 1, 2014 13:54:41)
Офлайн
scopicholА можно примерчик, если не затруднит ;)
Внутри группы полученной с помощью add_mutually_exclusive_group() можно создавать вложенные группы
Офлайн
parser = argparse.ArgumentParser(prog='PROG') group = parser.add_mutually_exclusive_group() group2 = group.add_mutually_exclusive_group() group2.add_argument('--from', action='store_true') group2.add_argument('--to', action='store_false') group.add_argument('--period', action='store_false') parser.print_help()
Отредактировано scopichol (Сен. 1, 2014 17:09:39)
Офлайн
usage: PROG [-h] [[--from | --to] --period] optional arguments: -h, --help show this help message and exit --from --to --period
agryn
вместе –period с –from или –to не может быть
Отредактировано agryn (Сен. 1, 2014 17:53:49)
Офлайн
Тогда для –from и –to обычную группу не mutually
Офлайн
Что то не фурычит :(
parser = argparse.ArgumentParser(prog='PROG') group = parser.add_mutually_exclusive_group() group2 = group.add_argument_group() group2.add_argument('--from', action='store_true') group2.add_argument('--to', action='store_false') group.add_argument('--period', action='store_false') parser.print_help()
usage: PROG [-h] [--from] [--to] [--period] optional arguments: -h, --help show this help message and exit --period
Офлайн
print_help не корректно отображает
Например в первоначальном варианте не печатает символ | перед –period
если перенести период вперед
parser = argparse.ArgumentParser(prog='PROG') group = parser.add_mutually_exclusive_group() group.add_argument('--period', action='store_true') group2 = group.add_mutually_exclusive_group() group2.add_argument('--from', action='store_true') group2.add_argument('--to', action='store_true') parser.print_help()
Отредактировано scopichol (Сен. 2, 2014 10:57:06)
Офлайн
Недоделаный какой то парсер.
mutually группа хранит аргументы в родительском контейнере
Боюсь не получится
Отредактировано scopichol (Сен. 2, 2014 10:57:27)
Офлайн