gpt4 book ai didi

python - 如何保留自动添加的 argparse 帮助参数,但从中删除 -h,以便我可以将该选项用于另一个参数

转载 作者:行者123 更新时间:2023-12-03 23:08:42 27 4
gpt4 key购买 nike

自动添加的帮助参数具有选项字符串 -h--help .我想保留 --help 的帮助参数但删除 -h从它,所以我可以使用该选项字符串作为另一个参数。

我认为必须有比用 add_help=False 完全删除帮助参数更好的方法。只是为了再次添加 --helpaction="help"紧接着,对吧?也许我可以修改现有的帮助参数的选项字符串?

顺便说一句,关于“不要删除 -h 因为用户希望它是 --help 的别名”:这是一个公平的论点。然而,在快速浏览我的本地二进制文件时,我找不到任何使用 -h 的命令。显示除 fdisk 以外的帮助信息. (当然,这并不意味着没有更多。)甚至更多:许多命令使用 -h对于完全不同的东西,请参阅 ls , cd , dfdiff列举其中一些。

最佳答案

冲突处理程序路由:

In [5]: parser=argparse.ArgumentParser(conflict_handler='resolve')                             
In [6]: parser.add_argument('-h','--handle',help='handle foobar',default='foo');

In [7]: parser.print_help()
usage: ipython3 [--help] [-h HANDLE]

optional arguments:
--help show this help message and exit
-h HANDLE, --handle HANDLE
handle foobar
resolve只是更改了“-h”,而不是“--help”。

使用新的“-h”:
In [8]: parser.parse_args('-h bar'.split())                                                    
Out[8]: Namespace(handle='bar')

由于仍然允许使用缩写,因此带一个破折号的“-help”会产生意想不到的结果:
In [9]: parser.parse_args('-help'.split())                                                     
Out[9]: Namespace(handle='elp')

正确的帮助:
In [10]: parser.parse_args('--help'.split())                                                   
usage: ipython3 [--help] [-h HANDLE]

optional arguments:
--help show this help message and exit
-h HANDLE, --handle HANDLE
handle foobar
An exception has occurred, use %tb to see the full traceback.

SystemExit: 0

/usr/local/lib/python3.6/dist-packages/IPython/core/interactiveshell.py:3327: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

查看 _handle_conflict_resolve 的代码方法来查看它的作用。

关于python - 如何保留自动添加的 argparse 帮助参数,但从中删除 -h,以便我可以将该选项用于另一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60478568/

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