gpt4 book ai didi

python - Argparse"ArgumentError : argument -h/--help: conflicting option string(s): -h, --help"

转载 作者:IT老高 更新时间:2023-10-28 22:12:29 26 4
gpt4 key购买 nike

最近在学习argparse模块,代码下方出现Argument错误

import argparse
import sys


class ExecuteShell(object):
def create(self, args):
"""aaaaaaa"""
print('aaaaaaa')
return args

def list(self, args):
"""ccccccc"""
print('ccccccc')
return args

def delete(self, args):
"""ddddddd"""
print('ddddddd')
return args


class TestShell(object):
def get_base_parser(self):
parser = argparse.ArgumentParser()
parser.add_argument('-h',
'--help',
action='store_true',
help=argparse.SUPPRESS)

parser.add_argument('-c', action='store',
dest='create_value',
help='create a file')

parser.add_argument('-d', action='store',
dest='delete_value',
help='delete a file')

parser.add_argument('-l', action='store',
dest='list_value',
help='list a dir')

return parser

def _find_actions(self, subparsers, actions_module):
for attr in (action for action in dir(actions_module) if not action.startswith('__')):
callback = getattr(actions_module, attr)
desc = callback.__doc__ or ''
subparser = subparsers.add_parser(attr, description=desc)
subparser.add_argument('-h', '--help', action='help',
help=argparse.SUPPRESS)
self.subcommands[attr] = subparser
subparser.set_defaults(func=callback)

def main(self, args):
parser = self.get_base_parser()
(options, args) = parser.parse_known_args(args)
subparsers = parser.add_subparsers(metavar='<subcommand>')
a = ExecuteShell()
self.subcommands = {}
subcommand_parser = self._find_actions(subparsers, a)


if __name__ == "__main__":
a = TestShell()
a.main(sys.argv[1:])

为什么会出现此错误,我该如何解决?

最佳答案

argparse 默认添加 --help-h 选项。如果您不想使用内置帮助功能,则需要使用以下命令禁用它:

parser = argparse.ArgumentParser(add_help=False)

documentation

关于python - Argparse"ArgumentError : argument -h/--help: conflicting option string(s): -h, --help",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18839957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com