В качестве примера возьмем этот сценарий Python example.py:
Код: Выделить всё
import argparse
def run(positional_argument,named_argument='default',flag=False):
print(positional_argument)
print(named_argument)
print(flag)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
# add positional arguments
parser.add_argument('positional_argument',type=str,choices=['a','b'])
# add keyword arguments
parser.add_argument('--named_argument',type=str,required=False,default='default')
# add flags
parser.add_argument('--flag',action='store_true')
# parse arguments
args = parser.parse_args()
# call function
run(positional_argument=args.positional_argument,
named_argument=args.named_argument,
flag=args.flag)
P.S.: Более широкий контекст для любопытных читателей (хотя это и не обязательно для решения моего вопроса): Я хотел бы создать pip-пакет, который также можно использовать в качестве приложения командной строки. На этот вопрос уже есть ответ, но он касается только позиционных аргументов.
Подробнее здесь: https://stackoverflow.com/questions/782 ... l-argument