Я использую следующий простой код для разбора некоторых аргументов; обратите внимание, что один из них требуется. К сожалению, когда пользователь запускает сценарий без предоставления аргумента, отображаемый текст использования / справки не указывает на наличие необязательного аргумента, который я нахожу очень запутанным. Как я могу получить Python, чтобы указать, что аргумент не является необязательным?
Вот код:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Foo')
parser.add_argument('-i','--input', help='Input file name', required=True)
parser.add_argument('-o','--output', help='Output file name', default="stdout")
args = parser.parse_args()
print ("Input file: %s" % args.input )
print ("Output file: %s" % args.output )
При выполнении кода выше без предоставления обязательного аргумента я получаю следующий вывод:
usage: foo.py [-h] -i INPUT [-o OUTPUT]
Foo
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
Input file name
-o OUTPUT, --output OUTPUT
Output file name
optional arguments
для требуемых аргументов по-прежнему вводит в заблуждение.
-i INPUT
деталь не заключена в квадратные скобки, что указывает на то, что действительно требуется. Кроме того, вы можете вручную объяснить это черезhelp
параметр