通过命令行将多个变量传递给Python脚本

时间:2019-07-11 23:40:27

标签: python python-3.x

我正在设置Python脚本来计算风险评分。该脚本将需要从命令行运行,并将包含计算所需的所有变量。

所需格式为: python test.ipynb 65岁性别男性

年龄和性别是变量名,其中65(整数年)和Male(类别)是变量。

我是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

性别价值是男性

2 个答案:

答案 0 :(得分:2)

Argparse是我使用的。这是一些代码。

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中配置一下,所以我建议阅读文档。

答案 1 :(得分:2)

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