【问题标题】:Passing command line arguments in python [duplicate]在python中传递命令行参数[重复]
【发布时间】:2018-03-03 01:30:00
【问题描述】:

如何传递非位置的命令行参数。我只想传递可以分配给脚本中特定变量的参数。

【问题讨论】:

    标签: python


    【解决方案1】:

    您可以导入 argparse。 :for Python 2.7

    For python 3.6

    你可以像这样调用下面的脚本:

    python myScript.py -showGivenNumber 42

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('-showGivenNumber', action="store", dest="givennumber",)
    myArgs =  parser.parse_args()
    print( myArgs.givennumber )
    

    这里我们将 ArgumentParser 定义为解析器并添加参数 -showGivenNumber,我们将其打印出来。

    【讨论】:

    • 很高兴听到。该库非常好,我相信它有一个用例可以满足您在参数方面的所有需求。
    【解决方案2】:

    Bash 将参数读取为字符串,您可以编写字符串以包含识别信息。

    $python3 myscript.py second:two first:one third fourth
    

    那么脚本需要弄清楚什么去哪里了:

    import sys
    
    
    args={'generic':[]}
    for arg in sys.argv[1:]: #gets the arguments from bash as a list of strings
        if ':' not in arg:args['generic'].append(arg) #collects generic args
        else: #contains an arbitrary key seperator
            key,val=arg.split(':')
            assert key not in args #raises an error if its going to overwrite a key
            args[key]=val
    
    
    
    main_program(**vars)
    

    在 main_program 函数中,first 和 second 将是您可以使用的变量,“generic”将有一个包含第三个和第四个等的列表。

    键必须是有效的python变量,否则调用程序会在调用main_program之前引发类型错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-16
      • 2019-10-31
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多