在python脚本中调用函数并使用命令行传递参数

时间:2017-05-31 18:56:22

标签: python-2.7 function parameters

  • 我有一个名为first_code.py
  • 的脚本
  • 脚本中的代码类似于

def function1(param1):     返回var1 def function2(param1):     返回var2 def function3(param1):     return var3

我想从windows命令执行脚本first_code.py并传递param1的值,以便:执行所有函数或者如果我想执行特定函数,请说function2。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您在命令行中指定的参数保留在sys.argv中 你应该在代码的底部添加以下行:

print function1(sys.argv[1])
print function2(sys.argv[1])
print function3(sys.argv[1])

请注意sys.argv [0]是脚本名称。

如果要指定要运行的功能,请添加更多参数,它们将位于sys.argv[2]sys.argv[3]等'

答案 1 :(得分:1)

您可以使用类似这样的方法来更通用地调用带有0- *参数的函数:

if __name__ == '__main__':
   print (len(sys.argv))
   params = []
   if len(sys.argv) > 2:
      for x in range(2, len(sys.argv)):
         params.append(sys.argv[x])
   if len(params) > 0:
      globals()[sys.argv[1]](*params)
   else:
      globals()[sys.argv[1]]()

如果脚本“ getstuff.py”包含名为“ getSomething(forWho,fromWho)”的函数, 可以叫做:
      python getstuff.py getsomething“雷”“史蒂夫”

可以根据需要选择任意数量的参数。

只需在您的脚本中包含摘要即可。:>)