繁体   English   中英

使一组ArgParse参数可选

[英]Making a group of ArgParse arguments optional

我有这样的当前代码:

parser = argparse.ArgumentParser()
parser.add_argument('origin_x', help='X origin', type=float)
parser.add_argument('origin_y', help='Y origin', type=float)
parser.add_argument('origin_z', help='Z origin', type=float)
parser.add_argument('file_name', help='File to use')

我当然可以这样称呼:

python my_prog.py 0 0 0 foo.txt

但是,我也想这样做:

python my_prog.py foo.txt

但这不是:

python my_prog.py 0 foo.txt

现有的API有什么方法可以做到这一点? 此答案显示了如何手动执行类似操作,但是有自动方法吗?

后处理可能是最好的选择:

parser.add_argument('origin', nargs="*", default=[0., 0., 0.], type=float)
parser.add_argument('file_name', help='File to use')
args = parser.parse_args()
if not len(args.origin) == 3:
    parser.error("you done wrong..")

暂无
暂无

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

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