Ошибка с автоматической строкой использования из argparse с nargs = '*' и метавара с необязательным множественным числом "(s)" - PullRequest
0 голосов
/ 11 ноября 2019

Я пишу программу, которая использует позиционный аргумент, который принимает «остальную часть» аргументов, например,

import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        'filenames',
        nargs='*',
        metavar="filename(s)",
    )
    args = parser.parse_args()

Здесь я использовал параметр metavar, чтобы получить более полезную помощьтекст. Но проблема заключается в строке usage:

>python test_argparse_plural.py -h
usage: test_argparse_plural.py [-h] [filenames) [filename(s ...]]

positional arguments:
  filename(s)

optional arguments:
  -h, --help   show this help message and exit

Кажется, что она не очень хорошо справляется с частью (s). Вместо этого я хотел бы, чтобы строка usage была либо

test_argparse_plural.py [-h] [filename(s)]

или, возможно,

test_argparse_plural.py [-h] [filename1, filename2, ...]

(или что-нибудь еще разумное, действительно)

Есть ли какие-либо простыеспособ достичь этого?

...