美文网首页Python学习笔记
Python argparse:默认值或指定值

Python argparse:默认值或指定值

作者: DC_ing | 来源:发表于2019-01-31 11:26 被阅读0次

    我想有一个可选参数,如果只存在没有指定值的标志,则默认为一个值,但如果用户指定一个值,则存储用户指定的值而不是默认值。是否已经有一个可用的操作?

    一个例子:

    python script.py --example
    # args.example would equal a default value of 1
    python script.py --example 2
    # args.example would equal a default value of 2
    

    我可以创建一个动作,但想看看是否有一个现有的方法来做到这一点。

    最佳答案

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--example', nargs='?', const=1, type=int)
    args = parser.parse_args()
    print(args)
    
    % test.py 
    Namespace(example=None)
    % test.py --example
    Namespace(example=1)
    % test.py --example 2
    Namespace(example=2)
    

    nargs =’?’表示0或1参数
    const = 1当有0个参数时设置默认值
    type = int将参数转换为int

    如果您希望test.py将示例设置为1,即使未指定–example,那么请包含default = 1。也就是说

    parser.add_argument('--example', nargs='?', const=1, type=int, default=1)
    

    然后

    % test.py 
    Namespace(example=1)
    

    转载自:https://codeday.me/bug/20170720/44304.html

    相关文章

      网友评论

        本文标题:Python argparse:默认值或指定值

        本文链接:https://www.haomeiwen.com/subject/vajksqtx.html