python - 使用 argparse 显示隐藏选项

标签 python argparse

我正在使用 argprase 创建一个选项,这是一个非常具体的选项来完成一项特定的工作。该脚本目前有大约 30 个旋钮,并且大多数不经常使用。

我正在创建一个选项:

opt.add_argument('-opt',help="Some Help", help=argparse.SUPPRESS)

但我希望有两种方式来显示脚本的帮助:

my_script -help
my_script -help-long

我希望 -help-long 也显示所有隐藏的参数。我找不到执行此操作的方法。

有没有办法实现这种行为?

最佳答案

我不认为有内置的方法来支持这一点。您可能可以通过直接检查 sys.argv 并使用它来修改构建解析器的方式来破解它:

import sys
show_hidden_args = '--help-long' in sys.argv

opt = argparse.ArgumentParser()
opt.add_argument('--hidden-arg', help='...' if show_hidden_args else argparse.SUPPRESS)
opt.add_argument('--help-long', help='Show all options.', action='help')


args = opt.parse_args()

当然,如果一遍又一遍地写太不方便,你可以把它包装在一个辅助函数中(或者子类ArgumentParser):

def add_hidden_argument(*args, **kwargs):
    if not show_hidden_args:
        kwargs['help'] = argparse.SUPPRESS
    opt.add_argument(*args, **kwargs)

您可能想要添加一个非隐藏的 --help-long 参数,以便用户知道它应该做什么...

关于python - 使用 argparse 显示隐藏选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37303960/

相关文章:

python - 检查两个分类变量是否几乎相同

python - 如何在 Python 中迭代元组的堆栈

python - python 中的 import gv 是什么?

python - Choropleth 不绘制任何内容

python - 如果使用不允许的类型调用 add_argument() 是否可能引发错误?

python - 将通用方法放入 Python 中的抽象类是一种好习惯吗?

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

Python argparse 条件参数

Python argparse - 带有命令选项的选项

python - argparse 是否支持多个独占参数?