具有1或3个位置参数的python脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了具有1或3个位置参数的python脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1679字,纯文字阅读大概需要3分钟。
内容图文
![具有1或3个位置参数的python脚本](/upload/InfoBanner/zyjiaocheng/684/91a3eed4301442cd94bb7e74e98a56af.jpg)
我正在编写python脚本,它需要3个位置参数(例如名称,日期,位置)或1个参数,这是一个包含该信息的安装文件.
我知道我可以使用argparse,并且可以通过以下方式使位置参数成为可选参数:
parser.add_argument('name_OR_setupFile')
parser.add_argument('date', nargs='?')
parser.add_argument('location', nargs='?')
然后我可以进行错误检查,以确保用户没有做任何愚蠢的事情
问题在于,现在的帮助消息将非常混乱,因为尚不清楚第一个参数的含义是什么.我希望以某种方式将其作为两条不同的add_argument行来执行此操作,但是我不确定如何执行.
我也知道我可以使用–setupFile参数,并使这三个参数成为可选参数……但是我宁愿不要这样做,如果不需要的话.
第三种选择是使用:
parser.add_argument('ARGS', nargs='+', help='ARGS is either of the form setupFile, or name date location')
然后稍后进行错误检查…
预计到达时间:
我希望能够使用以下任一方法调用脚本:
python foo.py setupFile
要么
python foo.py name date location
我希望帮助文本如下所示:
usage:
foo.py setupFile
foo.py name date location
解决方法:
我认为使用argparse的最清晰的设计是:
parser = argparse.ArgumentParser()
g = parser.add_mutually_exclusive_group()
g.add_argument('--setup','-s',metavar='FILE',help='your help')
g.add_argument('--name',nargs=3,metavar=('NAME','DATE','LOCATION'),hel
...: p='your help')
parser.print_help()产生:
usage: ipython3 [-h] [--setup FILE | --name NAME DATE LOCATION]
optional arguments:
-h, --help show this help message and exit
--setup FILE, -s FILE
your help
--name NAME DATE LOCATION
your help
我已经使用互斥的可选参数处理了1或3个参数要求.并使用metavar来增加参数的清晰度. (正如最近另一个问题所指出的那样,metavar在位置上不能很好地工作.)
另一种选择是使用子解析器.这仍然需要诸如设置和名称之类的关键字,只有它们输入时不带-.次级解析器的帮助结构也大不相同.
内容总结
以上是互联网集市为您收集整理的具有1或3个位置参数的python脚本全部内容,希望文章能够帮你解决具有1或3个位置参数的python脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。