我正在创建一个 python 脚本,我想要一个参数来控制作为输出获得的搜索结果数量。我目前已命名该参数--head
。这是我希望它具有的功能:
When --head
未在命令行中传递我希望它默认为一个值。在这种情况下,一个相当大的,比如 80
When --head
传递时没有任何值,我希望它默认为另一个值。在本例中,有些内容是有限的,例如 10
When --head
传递了一个值,我希望它存储传递的值。
这是描述问题的一些代码:
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-h',
'--head',
dest='size',
const=80,
default=10,
action="I don't know",
help='Only print the head of the output')
>>> # OFC, that last line will fail because the action is uknown,
... # but here is how I'd like it to work
... parser.parse_args(''.split())
Namespace(size=80)
>>> parser.parse_args('--head'.split())
Namespace(size=10)
>>> parser.parse_args('--head 15'.split())
Namespace(size=15)
我知道我可能可以为此编写一个自定义操作,但我首先想看看是否有任何默认行为可以执行此操作。
在阅读了更多文档后,我找到了我需要的东西:nargs='?'
。
这与使用store
行动,并且完全按照我的意愿行事。
这是一个例子:
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--head',
dest='size',
const=10,
default=80,
action='store',
nargs='?',
type=int,
help='Only print the head of the output')
>>> parser.parse_args(''.split())
... Namespace(size=80)
>>> parser.parse_args('--head'.split())
... Namespace(size=10)
>>> parser.parse_args('--head 15'.split())
... Namespace(size=15)
Source: http://docs.python.org/3/library/argparse.html#nargs http://docs.python.org/3/library/argparse.html#nargs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)