tot*_*aka 38 python argparse python-3.x
我正在创建一个python脚本,我希望有一个参数来操作你输出的搜索结果数量.我现在已经命名了这个论点--head.这是我希望它拥有的功能:
如果--head没有在命令行传递,我希望它默认为一个值.在这种情况下,一个相当大的,像80
当--head没有任何值传递时,我希望它默认为另一个值.在这种情况下,有限的东西,如10
当--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)
Run Code Online (Sandbox Code Playgroud)
我知道我可能会为此编写自定义操作,但我首先想看看是否有任何默认行为.
tot*_*aka 51
在文档中再读一遍之后,我发现了我需要的东西: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)
Run Code Online (Sandbox Code Playgroud)
资料来源:http://docs.python.org/3/library/argparse.html#nargs
| 归档时间: |
|
| 查看次数: |
11889 次 |
| 最近记录: |