Python argparse与nargs行为不正确
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python argparse与nargs行为不正确,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1087字,纯文字阅读大概需要2分钟。
内容图文
![Python argparse与nargs行为不正确](/upload/InfoBanner/zyjiaocheng/697/181a05b97b854611b2fd1dadbd85ad3c.jpg)
这是我的argparse示例说sample.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-p", nargs="+", help="Stuff")
args = parser.parse_args()
print args
Python – 2.7.3
我希望用户提供-p选项后用空格分隔的参数列表.例如,如果你跑
$sample.py -p x y
Namespace(p=['x', 'y'])
但我的问题是,当你跑
$sample.py -p x -p y
Namespace(p=['y'])
这既不是在这里也不是在那里.我想要以下之一
>向用户抛出异常,要求他不要使用-p两次,而只是将它们作为一个参数提供
>假设它是相同的选项并产生[‘x’,’y’]列表.
我可以看到python 2.7正在做的两件事让我感到困惑.我可以让python执行上面记录的两种行为之一吗?
解决方法:
要生成[‘x’,’y’]列表,请使用action =’append’.实际上它给出了
Namespace(p=[['x'], ['y']])
对于每个-p,它给出一个列表[‘x’],由nargs =”指示,但append表示,将该值添加到Namespace已有的值.默认操作只是设置值,例如NS [ ‘P’] = [ ‘X’].我建议您查看文档中的操作段落.
选项允许按设计重复使用.它支持追加和计数等操作.通常用户不希望重复使用它们,或者对最后一个值感到满意.位置(没有-flag)不能重复(除了nargs允许).
How to add optional or once arguments?对如何创建“无重复”参数有一些建议.一种是创建自定义动作类.
内容总结
以上是互联网集市为您收集整理的Python argparse与nargs行为不正确全部内容,希望文章能够帮你解决Python argparse与nargs行为不正确所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。