我正在尝试使用登录我的服务器的工具: myLogin [-h] [--ip [地址]] [用户名] [密码]
如何使用python argparse库实现依赖的嵌套可选参数:[--ip [Address]]?
我尝试使用add_subparsers和add_argument_group而没有任何运气。
答案 0 :(得分:1)
nargs='?'
nargs可以设置为?
'?'。如果可能,将从命令行使用一个参数,并将其作为单个项生成。如果不存在命令行参数,则将生成默认值。请注意,对于可选参数,还有一种情况 - 选项字符串存在但后面没有命令行参数。在这种情况下,将生成const的值。一些例子来说明这一点:
在您的情况下,您使用的是可选参数,因此在未提供地址时将使用const的值。如果参数完全丢失,则使用默认值。例如,
>>> from argparse import ArgumentParser
>>> parser = ArgumentParser()
>>> parser.add_argument('--ip', nargs='?', default='my.server.net', const='192.168.1.1')
_StoreAction(option_strings=['--ip'], dest='ip', nargs='?', const='192.168.1.1', default='my.server.net', type=None, choices=None, help=None, metavar=None)
>>> parser.parse_args([])
Namespace(ip='my.server.net')
>>> parser.parse_args(['--ip'])
Namespace(ip='192.168.1.1')
>>> parser.parse_args(['--ip', '1.2.3.4'])
Namespace(ip='1.2.3.4')
>>>