Python中文
首页
教程
问答
标签
搜索
登录
注册
Python argparse:将可选参数与nargs组合=argparse.remaine
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我一定漏掉了一些明显的东西。目标是使用argparse,其中第一个参数是必需的,第二个是可选的,其余任何参数都是可选的。在</p> <p>为了说明这个问题,我制作了两个测试解析器;它们之间唯一的区别是使用nargs=argparse.remaine其中一个是nargs,另一个是'*'。在</p> <pre><code>def doParser1(argsin): parser = argparse.ArgumentParser(description='Parser demo.') parser.add_argument('req1', help='first required parameter') parser.add_argument('--opt1', help='first optional parameter') parser.add_argument('leftovers', nargs=argparse.REMAINDER, help='all the other parameters') argsout = parser.parse_args(args=argsin) print argsout return argsout def doParser2(argsin): parser = argparse.ArgumentParser(description='Parser demo.') parser.add_argument('req1', help='first required parameter') parser.add_argument('--opt1', help='first optional parameter') parser.add_argument('leftovers', nargs='*', help='all the other parameters') argsout = parser.parse_args(args=argsin) print argsout return argsout </code></pre> <p>如果没有额外的参数,parser2可以工作。这是parser1和parser 1后面的输入:</p> ^{pr2}$ <p>如果有额外的参数,则parser1中缺少opt1值,parser2只会混淆:</p> <pre><code>input: ['req1value', '--opt1', 'opt1value', 'r1', 'r2'] Namespace(leftovers=['--opt1', 'opt1value', 'r1', 'r2'], opt1=None, req1='req1value') usage: py-argparse.py [-h] [--opt1 OPT1] [-leftovers [LEFTOVERS [LEFTOVERS ...]]] req1 py-argparse.py: error: unrecognized arguments: r1 r2 </code></pre> <p>预期产出应为:</p> <pre><code>Namespace(leftovers=['r1', 'r2'], opt1='opt1value', req1='req1value') </code></pre> <p>看起来这应该是一个简单的例子,这里的内容是从我真正想做的事情中简化出来的。我试着让剩菜成为可选的,添加了各种其他的选择,但没有什么比这更好的了。在</p> <p>任何帮助都将不胜感激。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><code> opt1</code>必须在“unnamed”参数之前。真正的测试用例应该是:</p> <pre><code> [' opt1', 'opt1value', 'req1value'] </code></pre> <p>以及</p> ^{pr2}$
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何合并多个PDF文件?
5 回答
如何合并多个xarray数据变量及其坐标?
3 回答
如何合并多个列中具有重复值的行
6 回答
如何合并多个唯一id
3 回答
如何合并多个图纸并使用图纸名称的名称重命名列名?
3 回答
如何合并多个字典并添加同一个键的值?(Python)
4 回答
如何合并多个搜索结果文件(pkl)以将它们全部打印在一起?
7 回答
如何合并多个数据帧
9 回答
如何合并多个数据帧并使用Pandas为假人添加列?
9 回答
如何合并多个数据帧并按时间戳排序
1 回答
如何合并多个数据帧的列表并用另一个lis标记每列
2 回答
如何合并多个数据框中的列
3 回答
如何合并多个文件?
8 回答
如何合并多个查询集?
1 回答
如何合并多个绘图?
8 回答
如何合并多个词典
9 回答
如何合并多个输入数据集(数据帧)?
6 回答
如何合并多条记录中拆分的文本行
8 回答
如何合并多索引列datafram
7 回答
如何合并多级(即多索引)数据帧?
5 回答