Как передать filepath в качестве аргумента командной строки в argparse python - PullRequest
0 голосов
/ 11 сентября 2018

Мне нужно пройти как

 Python test.py -H host -U usr -P pass -L c:\newfolder\sample.sh -R /shell/sample.sh

Я получил сообщение об ошибке too many values to unpack

Пожалуйста, помогите мне добиться этого.

def check_argv(args=None)
    parser = argparse.argumentParser()
    parser.add_arugument('-H' , 'host')
    #Same for all argument
#---------------------------------


Host, pass, user , local , remote = check_arg(sys.argv[1:])

1 Ответ

0 голосов
/ 11 сентября 2018

Вы, вероятно, получаете ошибку, потому что вы собираете меньше значений, чем возвращает ваш кортеж функции. Это в строке.

И правильный способ использования функции argparser:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-H', action="store", dest="host")
parser.add_argument('-U', action="store", dest="usr")

params = parser.parse_args()

И в вашем коде вы можете получить такие параметры, как этот

# FETCHING ARGUMENT DETAILS
print(params.host, params.usr)

ВЫВОД:

$python test.py -H hostname -U testuser   
>>>hostname testuser

Вы можете продолжать добавлять столько значений, сколько необходимо, и возвращать их таким же образом.

...