【发布时间】:2017-09-19 19:07:30
【问题描述】:
是否可以在 python (2.7) argparse 中添加在指定执行哪个子命令时不需要完全匹配的子解析器?有谁知道如何做到这一点?它已经对长选项进行前缀匹配,例如--my-long-option 可以指定为 --my-l,只要它是所有其他选项中的唯一前缀即可。
例如,我想要一个类似的命令
foo apple
foo banana
foo carrot
我可以指定foo ap 来使用foo apple 子解析器。
如果我使用记录的方案添加这些子解析器,这不起作用,即
sub = parser.add_subparsers(help='commands')
apple = sub.add_parser( 'apple', ... )
banana = sub.add_parser( 'banana', ... )
carrot = sub.add_parser( 'carrot', ... )
这需要指定完整的子命令名称。
【问题讨论】:
-
可以嵌套子解析器。你可以有一个
foo子解析器,它实际上有apple, banana, and carrot子解析器。
标签: python command-line argparse