Я пытаюсь создать обязательный флаг «-f», который принимает вход «filename.pdb» в Argparse.Argparse: Создание обязательных флагов
Это достаточно просто. Стандартным решением является добавление опции «required = True».
К сожалению, после этого флаг «-f» по-прежнему отображается под дополнительными аргументами в списке справки. Еще более смутно, флаг «-f» появляется, как требуется в приглашении «use» в списке справки.
Вот мой код:
parser = argparse.ArgumentParser()
parser.add_argument("-f", "--file_name", required=True, help="enter name of .pdb file")
parser.add_argument("-bw", "--bin_width", default=.25, help="enter desired bin width in nanometers. default = .25")
parser.add_argument("-bn","--base_name", default="IDP", help="custom prefix for output file naming. default = IDP")
args = parser.parse_args()
А вот окно справки, возвращаемый --help
usage: rgcalc.py [-h] -f FILE_NAME [-bw BIN_WIDTH] [-bn BASE_NAME]
optional arguments:
-h, --help show this help message and exit
-f FILE_NAME, --file_name FILE_NAME
enter name of .pdb file
-bw BIN_WIDTH, --bin_width BIN_WIDTH
enter desired bin width in nanometers. default = .25
-bn BASE_NAME, --base_name BASE_NAME
custom prefix for output file naming. default = IDP
Как вы можете видеть в блоке «использования», «-f «был снят из скобок, что указывает на необходимость. Несмотря на это, «-f» все еще появляется в разделе «необязательные аргументы».
Можно ли:
A) Пользовательский формат окна помощи, чтобы исправить эту
или
B) Добавить некоторый код, чтобы иметь флаг "-f", «--file_name "появляются как позиционные (против необязательного) аргумента, но все же требуют флаг?
Я читал, что Argparse намеренно сделал это, чтобы избежать позиционных флагов, но я должен сделать это, чтобы обслуживать традиционных пользователей Linux.
Спасибо, любезные interwebbers!
Очень высокий оценка. Очень всеобъемлющий и непритязательный. –