Python 2.7 在python脚本中调用函数并使用命令行传递参数 我有一个名为first_code.py的脚本 脚本中的代码如下所示

Python 2.7 在python脚本中调用函数并使用命令行传递参数 我有一个名为first_code.py的脚本 脚本中的代码如下所示,python-2.7,function,parameters,Python 2.7,Function,Parameters,def功能1(参数1): 返回变量1 def功能2(参数1): 返回变量2 def功能3(参数1): 返回变量3 我想从windows命令like中首先执行脚本_code.py,并传递param1的值,以便:执行所有函数,或者如果我想执行一个特定函数,比如function2 我该怎么做呢?您在命令行中指定的参数保存在 应在代码底部添加以下行: print function1(sys.argv[1]) print function2(sys.argv[1]) print function3(sys

def功能1(参数1): 返回变量1 def功能2(参数1): 返回变量2 def功能3(参数1): 返回变量3

我想从windows命令like中首先执行脚本_code.py,并传递param1的值,以便:执行所有函数,或者如果我想执行一个特定函数,比如function2


我该怎么做呢?

您在命令行中指定的参数保存在 应在代码底部添加以下行:

print function1(sys.argv[1])
print function2(sys.argv[1])
print function3(sys.argv[1])
请注意,sys.argv[0]是脚本名称


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

命令行中指定的参数将保留在 应在代码底部添加以下行:

print function1(sys.argv[1])
print function2(sys.argv[1])
print function3(sys.argv[1])
请注意,sys.argv[0]是脚本名称


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

您可以使用类似的方法来更通用地调用函数,该函数采用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“Ray”“Steve”

可以根据需要获取任意多个参数


只需在脚本中包含代码片段即可。:>)

您可以使用类似的方法来更通用地调用函数,该函数采用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“Ray”“Steve”

可以根据需要获取任意多个参数

只需将代码段包含在脚本中即可。:>)