繁体   English   中英

将可选编号 arguments 传递给标志 Python argparse

[英]Passing optional number of arguments to a flag Python argparse

我希望能够将 1 或 2 个参数传递给我的 python 脚本,因此我可以这样调用它:

dfuMaker.py --bin {file} {address}

如果未传递,地址可以具有默认值。

目前,这就是我定义论点的方式。

cmdParser.add_argument(
    '--bin', action='store', nargs=2, required=True)

当然,当尝试仅传递 1 个参数时,它会失败并出现错误:

DFUMaker: error: argument --bin: expected 2 arguments

我会使用自定义类型。

def file_address_pair(s):
    x = s.split(",", 1)
    if len(x) == 1:
        x.append(DEFAULT_ADDRESS)
    return x


p.add_argument("--bin", type=file_address_pair)

尽管名称如此,但type参数可以是任何接受str并返回值的可调用对象; 它不一定是实际的 Python 类型。

然后你可以使用

dfuMaker.py --bin f
dfuMaker.py --bin f,addr

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM