#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')