将可选数量的参数传递给标志 Python argparse
Passing optional number of arguments to a flag Python argparse
我希望能够向我的 python 脚本传递 1 或 2 个参数,这样我就可以这样调用它:
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
和 returns 值的可调用对象;它不一定是实际的 Python 类型。
那么你可以使用
dfuMaker.py --bin f
dfuMaker.py --bin f,addr
我希望能够向我的 python 脚本传递 1 或 2 个参数,这样我就可以这样调用它:
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
和 returns 值的可调用对象;它不一定是实际的 Python 类型。
那么你可以使用
dfuMaker.py --bin f
dfuMaker.py --bin f,addr