我正在使用 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/