我一直在使用argparse
来解析命令行选项并且效果很好。现在,我想使用+
代替-
来获取某些选项。
例如:script.py +opt -f <filename>
是否可以在+
使用此类argparse
选项?
答案 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
无法工作。