在 argparse 中未设置 optinal 时如何采用两个位置参数 [英] How to take two positional arguments when optinal isn't set in argparse

查看:22
本文介绍了在 argparse 中未设置 optinal 时如何采用两个位置参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想编写一个 argparse 命令,当我没有设置可选参数时,它需要两个位置参数.在我的情况下,就像我想用两个必要的参数调用它,但是当我说 python3 test.py -gui 我希望你不需要这两个参数,因为那样你正在使用 gui.

I want to write a argparse command that needs two postional arguments when I don't set a optional argument. In my case it's like I want to call it with two necessary parameters but when I say python3 test.py -gui I want that you don't need this two arguments, because then you are using the gui.

谢谢

推荐答案

这是我在评论中提出的:

This is what I was proposing in the comments:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--gui', action='store_true', help="use GUI")
parser.add_argument('args', nargs='*')
cmdargs = parser.parse_args()
nargs = len(cmdargs.args)
nargs_expected = 0 if cmdargs.gui else 2
if nargs != nargs_expected:
    parser.error(f"{nargs_expected} arguments were expected, but got {nargs}")

这篇关于在 argparse 中未设置 optinal 时如何采用两个位置参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆