Вызов необязательного аргумента в python с использованием интерфейса командной строки

#python #python-3.x

#python #python-3.x

Вопрос:

 import argparse
import sys
parser = argparse.ArgumentParser()
parser.add_argument('--type', type=str, help='Annuity or Differential')
parser.add_argument('--principal', type=int)
parser.add_argument('--periods', type=int)
parser.add_argument('--interest', type=float)
parser.add_argument('--payment', type=int)
args = parser.parse_args()
  

Как вызвать аргументы из командной строки?

python filename.py -введите разницу -основная сумма 400000 -периоды 8 -проценты 3.5 -платеж 788888 или на python filename.py —тип=разница —основная сумма =400000 —периоды = 8 —проценты = 3,5 —оплата =788888

Комментарии:

1. Почему бы не попробовать и не посмотреть, что получится?

2. проблема в том, что второй аргумент работает, но я смотрел учебное пособие, в котором они объявляют пробел, и, согласно этому учебному пособию, вариант 1 должен работать .. чтобы быть точным, вам нужно ввести пробел после переменной.. это вариант 1, но он не работает. отображается ошибка

3. Вы должны добавить свою ошибку и какие проблемы у вас возникли с пониманием ошибки, которую вы получаете.

Ответ №1:

 import argparse
import sys
parser = argparse.ArgumentParser()
parser.add_argument('--type', type=str, help='Annuity or Differential')
parser.add_argument('--principal', type=int)
parser.add_argument('--periods', type=int)
parser.add_argument('--interest', type=float)
parser.add_argument('--payment', type=int)

#   ===========
parser.add_argument( "files", nargs="*",
                 type=str,
                 help="files to process",
                 default=[])
#   ===========

args = parser.parse_args()
print("args=", args)
  

Результаты:

 xxx@xxx:~/tmp$ python3 ./toto.py  --type diff --principal 400000 --periods 8 --interest 3.5 --payment 788888
args= Namespace(files=[], interest=3.5, payment=788888, periods=8, principal=400000, type='diff')

xxx@xxx:~/tmp$ python3 ./toto.py filename.py --type diff --principal 400000 --periods 8 --interest 3.5 --payment 788888
args= Namespace(files=['filename.py'], interest=3.5, payment=788888, periods=8, principal=400000, type='diff')