gpt4 book ai didi

python - 像 -h 一样对待可选参数

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:18 24 4
gpt4 key购买 nike

如何告诉 argparse-h--help 一样处理可选参数?

测试.py

def test():
print '## This is my test'

import argparse
parser = argparse.ArgumentParser(prog='test.py')
parser.add_argument('-t', '--test', action='store_true',
help='Should work just like "-h", "--help"')
parser.add_argument('req',
help='Otherwise required')

args = parser.parse_args()

if args.test:
test()

if args.req:
print '## Found "req"'

#python test.py -h

usage: test.py [-h] [-t] req

positional arguments:
req Otherwise required

optional arguments:
-h, --help show this help message and exit
-t, --test Should work just like "-h", "--help"

# python test.py -t

usage: test.py [-h] [-t] req
test.py: error: too few arguments

#python test.py -t test

## This is my test
## Found "req"

#python test.py 测试

## Found "req"

我想,如果指定了 -t, --testargparse 就停在这里,就像 一样-h, --帮助.

最佳答案

帮助的退出功能在 argparse._HelpAction __call__ 方法中定义。

class _HelpAction(Action):
def __init__(self,
option_strings,
dest=SUPPRESS,
default=SUPPRESS,
help=None):
super(_HelpAction, self).__init__(
option_strings=option_strings,
dest=dest,
default=default,
nargs=0,
help=help)

def __call__(self, parser, namespace, values, option_string=None):
parser.print_help()
parser.exit() # it exists here

您要么必须使用帮助操作:

parser.add_argument('-t', '--test', action='help',
help='Should work just like "-h", "--help"')

或者创建自定义 argparse 操作。

class MyCustomAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
print("argument found, I should exit")
self.exit()

parser.add_argument('-t', '--test', action= MyCustomAction,
help='Should work just like "-h", "--help"')

有关创建自定义操作的详细信息,您可以引用 docs .

关于python - 像 -h 一样对待可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37564503/

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