python foo.py python foo.py -apython 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
总结以上是内存溢出为你收集整理的python – 如果提供了可选参数,则需要命令行参数全部内容,希望文章能够帮你解决python – 如果提供了可选参数,则需要命令行参数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)