【问题标题】:How to execute a default set of function from cmd如何从 cmd 执行一组默认功能
【发布时间】:2019-07-18 21:48:17
【问题描述】:

我有多种功能

 def function1(x,y,z):
    do something 

  def function2():
    do something 

我想在从 cmd 执行时调用 function1 作为默认函数。我尝试了以下示例this

parser = argparse.ArgumentParser(description='Generating report for Multikey usage')

parser.add_argument('--function1',dest='action', action='store_const', const=function1)
parser.add_argument('--a',type=str,help=' enter the association Id ')
parser.add_argument('--d',type=int,help=' enter the number of days from today ')
parser.add_argument('--e',type=str,help=' enter the receivers email ')

args = parser.parse_args()
x,y,z  = args.a, args.d , args.e

但它不起作用。我做错了什么? 有没有办法我不必从cmd指定函数名。例子, 从 cmd 我想将 I/O 作为

python Multikey_report_1.py  --a AS000000008S --d 200 --e blah@gmail.com

【问题讨论】:

    标签: python python-3.x python-2.7


    【解决方案1】:

    如果你用

    调用你的脚本
     python Multikey_report_1.py  --a AS000000008S --d 200 --e blah@gmail.com
    

    然后这一行

    parser.add_argument('--function1',dest='action', action='store_const', const=function1)
    

    不是正常运行。 将 --function1 添加到您的参数中,它应该可以工作,这就是您引用的示例的方式

     python Multikey_report_1.py --function1 --a AS000000008S --d 200 --e blah@gmail.com
    

    这会将 function1 的值存储到一个名为 action 的 args 变量中,因此您还需要确保该块也在您的代码中,它将运行 function1

    parsed_args.action(x,y,z)
    

    【讨论】:

    • 啊现在工作了。我把 parsed_args.action(parsed_args) 而不是 parsed_args.action(x,y,z)。如何消除将函数名称放入 CMD 的需要
    • 想通了。 parser.add_argument(dest='action', action='store_const', const=function1) 可以正常工作。谢谢你花时间。
    猜你喜欢
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2018-05-26
    • 2017-12-31
    • 1970-01-01
    相关资源
    最近更新 更多