Передача нескольких переменных в скрипт Python через командную строку

Я настраиваю скрипт Python для расчета оценки риска. Сценарий нужно будет запускать из командной строки, и он будет включать все переменные, необходимые для расчета.

Необходимый формат: python test.ipynb Возраст 65 Пол Мужской

Возраст и пол — это имена переменных, причем переменными являются 65 (целое число лет) и Мужской пол (категориальное число).

Я очень новичок в Python, поэтому уровень навыков низкий. - искал примеры - Читать о getopt и optoparse - Попытка написать код Python для достижения этой цели

import sys, getopt

def main(argv):
   ageValue = 0
   genderValue = 0

   try:
      opts, args = getopt.getopt(argv,"",["Age","Gender"])
   except getopt.GetoptError:
      print ('Error, no variable data entered')
      sys.exit(2)
   for opt, arg in opts:
      if opt == "Age":
         ageValue = arg
      if opt == "Gender":
         genderValue = arg
   print ('Age Value is  ', ageValue)
   print ('Gender Value is ', genderValue)

Это вывод из этого кода -

Значение возраста равно 0

Значение пола равно 0

Ожидаемый результат

Значение возраста: 65 лет.

Гендерное значение - мужской

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
1 106
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я использую Аргпарс. Вот код.

import argparse 

parser = argparse.ArgumentParser(description='Do a risk thing')
parser.add_argument('-a', '--age', dest='age', type=int, help='client age')
parser.add_argument('-g', '--gender', dest='gender', type=str, help='client gender')

args = parser.parse_args()

print('Age: {}\nGender: {}'.format(args.age, args.gender))

Использование python test.py --age 25 --gender male.

Обратите внимание, что это не будет работать с ноутбуком Python. Для этого я не уверен в решении. Кроме того, вы действительно можете настроить argparse, поэтому я рекомендую прочитать документы.

Спасибо, ваш пример вполне понятен. Структура вашего кода имеет для меня гораздо больше смысла, чем другие примеры, которые я нашел.

RROBINSON 12.07.2019 03:43
import argparse 

if __name__ == "__main__"
   parser.add_argument('-age', required=True)
   parser.add_argument('-gender', required=True)
   args = vars(parser.parse_args())
   print(args['age'], args['gender'])


Другие вопросы по теме