您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python argparse-带有选项的可选附加参数

python argparse-带有选项的可选附加参数

可以使用argparse.Action以下示例中的定制方法完成所需的操作:

import argparse

parser = argparse.ArgumentParser()

class DefaultListAction(argparse.Action):
    CHOICES = ['clear','copy','dump','lock']
    def __call__(self, parser, namespace, values, option_string=None):
        if values:
            for value in values:
                if value not in self.CHOICES:
                    message = ("invalid choice: {0!r} (choose from {1})"
                               .format(value,
                                       ', '.join([repr(action)
                                                  for action in self.CHOICES])))

                    raise argparse.ArgumentError(self, message)
            setattr(namespace, self.dest, values)

parser.add_argument('actions', nargs='*', action=DefaultListAction,
                    default = ['dump', 'clear'],
                    Metavar='ACTION')

print parser.parse_args([])
print parser.parse_args(['lock'])

该脚本的输出为:

$ python test.py 
Namespace(actions=['dump', 'clear'])
Namespace(actions=['lock'])
python 2022/1/1 18:43:23 有287人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶