在使用argparse
库时,有时候我们希望在帮助信息中抑制某些参数的显示。以下是一个示例代码,展示如何使用argparse
来抑制参数列表的显示:
import argparse
# 创建解析器对象
parser = argparse.ArgumentParser()
# 添加参数
parser.add_argument('--input', help='输入文件')
parser.add_argument('--output', help='输出文件')
parser.add_argument('--verbose', action='store_true', help='详细模式')
# 隐藏参数列表
class HiddenAction(argparse.Action):
def __init__(self, option_strings, dest, **kwargs):
super(HiddenAction, self).__init__(option_strings, dest, **kwargs)
def __call__(self, parser, namespace, values, option_string=None):
# 隐藏参数列表
parser._optionals.title = '参数列表:'
parser._optionals.help = '参数列表:'
parser._optionals.usage = argparse.SUPPRESS
# 添加一个隐藏的参数
parser.add_argument('--hidden', action=HiddenAction, nargs=0, help=argparse.SUPPRESS)
# 解析命令行参数
args = parser.parse_args()
# 输出参数值
print(args.input)
print(args.output)
print(args.verbose)
在上面的代码中,我们定义了三个可见的参数:--input
,--output
和--verbose
,以及一个隐藏的参数--hidden
。隐藏参数的显示被抑制,不会出现在帮助信息中。
要实现这个隐藏参数的显示抑制,我们自定义了一个HiddenAction
类,继承自argparse.Action
。在__call__
方法中,我们将parser._optionals.title
,parser._optionals.help
和parser._optionals.usage
设置为argparse.SUPPRESS
,以隐藏参数列表的显示。
在调用parser.add_argument
添加隐藏参数时,我们使用了action=HiddenAction
来指定自定义的HiddenAction
类。
最后,我们通过parser.parse_args()
解析命令行参数,并输出参数值。
这样,当我们运行脚本时,隐藏参数--hidden
不会在帮助信息中显示出来。