我有一个可选参数-s来设置工具。我希望用户可以提供输入或使用默认值。如果他决定使用默认值,他应该可以跳过提供额外的输入。
例如,myScript -s
和myScript -s "Hello"
都可以正常工作
似乎action = store_true
与nargs ='*'
答案 0 :(得分:1)
argparse
存储操作允许程序员区分3个用例:
default
)const
)假设您希望-s
和-s Hello
执行相同操作,您可以使用
parser = argparse.ArgumentParser(description = "Some desc.")
parser.add_argument("-s", nargs='?', const='Hello', default = None)
然后你可以测试它:
>>> parser.parse_args([])
Namespace(s=None)
>>> parser.parse_args(["-s"])
Namespace(s='Hello')
>>> parser.parse_args(["-s", 'Hello'])
Namespace(s='Hello')
>>> parser.parse_args(["-s", 'foo'])
Namespace(s='foo')