当没有传递任何东西时,是否有可能将帮助作为默认参数吐出?

时间:2014-02-03 17:03:30

标签: python argparse

在python的argparse中,当没有传递任何内容或者发生一些Argparse异常时,是否可以将帮助作为默认参数吐出?

2 个答案:

答案 0 :(得分:1)

如果零参数应该触发帮助消息,这意味着至少有一个选项不是真正可选的。确保您至少有一个位置参数(即名称不带“ - ”前缀的参数)定义:

p = argparse.ArgumentParser()
p.add_argument("foo", help="Required argument")

然后,如果未使用foo的参数调用脚本,则应触发使用消息。

答案 1 :(得分:0)

parser使用sys.argv[0]作为默认prog值,sys.argv[1:]作为parse_args的输入。您也可以访问甚至修改该阵列。

import argparse
import sys

parser = argparse.ArgumentParser....
parser.add_argument...

if not sys.argv[1:]:
    # parser.print_help(); parser.exit()
    # or
    # parser.parse_args(['-h'])
    # or
    sys.argv.append('-h')

args = parser.parse_args()

# your code to use args