python – 如果提供了可选参数,则需要命令行参数

python – 如果提供了可选参数,则需要命令行参数,第1张

概述我正在尝试编写一个脚本,用户可以从中选择三个不同的选项: python foo.py python foo.py -apython foo.py -b address_arg data_arg 如果用户选择了最后一个选项,我需要它们为地址和数据提供两个额外的参数. 我目前有它工作,所以它需要一个参数,比如这里的地址: parser.add_argument('-b', '--boo', des 我正在尝试编写一个脚本,用户可以从中选择三个不同的选项:

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 – 如果提供了可选参数,则需要命令行参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存