Как объявить две переменные разных типов через argpars - PullRequest
0 голосов
/ 28 января 2019

Подход Argps должен принимать два разных типа переменных, в этом случае только массив строк принимает значения, а переменная int - нет.как мне решить это?или это лучший подход к делу?Я очень новый, благодаря всему питону

код питона:

def read_cmdline_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("-l", "--search_by_name", help="Search by name", 
     type=str, nargs='+')
    args = parser.parse_args()
    return args

cmdline_args = read_cmdline_args()
uSerach_by_name = cmdline_args.serach_by_name

session.serach_by_name(tags=uSerach_by_name, amount=uSerach_by_name)

Оригинальный метод:

session.serach_by_name(["peter"], amount=2)

командная строка:

py quickstart.py --l peter john 2 (the value 2 which is amount is not being accepted )

1 Ответ

0 голосов
/ 28 января 2019

Хотите передать список слов и какой-нибудь номер?Просто добавьте еще один аргумент:

def read_cmdline_args():

    parser = argparse.ArgumentParser()
    parser.add_argument("-s", "--search_by_name", type=str, nargs='+', help="Search by name")

    # added argument
    parser.add_argument("-a", "--amount", type=int, default=0, help="Some amount")

    return parser.parse_args()

Теперь вы можете запустить скрипт следующим образом:

py quickstart.py -s peter john -a 2

Разобранные аргументы:

Namespace(amount=2, search_by_name=['peter', 'john'])
...