argparse与" +"选项

时间:2018-05-31 16:57:11

标签: python argparse

我一直在使用argparse来解析命令行选项并且效果很好。现在,我想使用+代替-来获取某些选项。

例如:script.py +opt -f <filename>

是否可以在+使用此类argparse选项?

1 个答案:

答案 0 :(得分:4)

您可以将prefix_chars option设置为'-'以外的其他内容:

parser = argparse.ArgumentParser(prefix_chars='-+')

此时您可以在参数定义中开始使用-+

>>> import argparse
>>> parser = argparse.ArgumentParser(prefix_chars='-+')
>>> parser.add_argument('+opt', action='store_true')
_StoreTrueAction(option_strings=['+opt'], dest='opt', nargs=0, const=True, default=False, type=None, choices=None, help=None, metavar=None)
>>> parser.add_argument('-f')
_StoreAction(option_strings=['-f'], dest='f', nargs=None, const=None, default=None, type=None, choices=None, help=None, metavar=None)
>>> parser.parse_args(['+opt', '-f', '<filename>'])
Namespace(f='<filename>', opt=True)

以上定义+opt;你必须使用正确的前缀来调用它,-opt无法工作。