Delsian
@Delsian

ArgParse: mutually exclusive arguments на месте positional?

Нужно передавать в скрипт данные либо из файла, либо из командной строки.
Использую конструкцию:
parser_write = subparsers.add_parser('write', help='Write вфеф')
    parser_write.add_argument('address', type=int)
    parser_write_data = parser_write.add_mutually_exclusive_group(required=True)
    parser_write_data.add_argument('-f', help='Data as binary file', type=argparse.FileType(), metavar=('FILE'))
    parser_write_data.add_argument('data', help='Data as hex string', nargs='?')

В принципе, все работает, как ожидалось, но некрасивый вывод Help:
usage: script.py write [-h] [-f FILE] address [data]

positional arguments:
  address
  data        Data as hex string

optional arguments:
  -h, --help  show this help message and exit
  -f FILE     Data as binary file


Хочу, чтобы data и file были объединены в конструкцию типа
usage: script.py write [-h] address {data|-f FILE}
Такое возможно?
  • Вопрос задан
  • 179 просмотров
Решения вопроса 1
@abcd0x00
parser_write = subparsers.add_parser(
    'write',
    help='Write вфеф',
    usage='%(prog)s [-h] address {data|-f FILE}'
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы