python – 如果提供了可选参数,则需要命令行参数
发布时间:2020-12-20 11:07:24 所属栏目:Python 来源:网络整理
导读:我正在尝试编写一个脚本,用户可以从中选择三个不同的选项: python foo.py python foo.py -apython foo.py -b address_arg data_arg 如果用户选择了最后一个选项,我需要它们为地址和数据提供两个额外的参数. 我目前有它工作,所以它需要一个参数,比如这里的地
我正在尝试编写一个脚本,用户可以从中选择三个不同的选项:
python foo.py python foo.py -a python foo.py -b address_arg data_arg 如果用户选择了最后一个选项,我需要它们为地址和数据提供两个额外的参数. 我目前有它工作,所以它需要一个参数,比如这里的地址: parser.add_argument('-b','--boo',dest='address',type=str,help="Help message") 如果我跑,哪个有效 python foo.py -b 0x00 但是,我如何要求用户提供数据的第二个参数? 解决方法
您可以使用nargs = 2设置预期参数的数量.
https://docs.python.org/3/library/argparse.html#the-add-argument-method >>> import argparse >>> parser = argparse.ArgumentParser() >>> parser.add_argument('-b','--bar',nargs=2) _StoreAction(option_strings=['-b','--bar'],dest='bar',nargs=2,const=None,default=None,type=None,choices=None,help=None,metavar=None) >>> args = parser.parse_args(['--bar','arg1','arg2']) >>> args.bar ['arg1','arg2'] >>> args = parser.parse_args(['--bar','arg1']) usage: [-h] [-b BAR BAR] : error: argument -b/--bar: expected 2 arguments 请注意,此处显示的帮助显示-b BAR BAR,这有点令人讨厌(默认情况下它会重复参数名称).您可以将元变量设置为元组,以便为??需要传递的两个参数显示更好的帮助消息. >>> parser.add_argument('-f','--foo',metavar=('desc1','desc2')) _StoreAction(option_strings=['-f','--foo'],dest='foo','desc2')) >>> parser.print_help() usage: [-h] [-b BAR BAR] [-f desc1 desc2] optional arguments: -h,--help show this help message and exit -b BAR BAR,--bar BAR BAR -f desc1 desc2,--foo desc1 desc2 有关更多信息,请参见此处:https://docs.python.org/3/library/argparse.html#metavar (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |