最近在看deepcluster
的代码时,遇到了Argparse
模块,不懂,所以特地看了一下。然后把自己看的记录下来。
argparse官方文档
argparse
是python
标准库中推荐的命令行解析模块。可以用来方便地读取命令行参数。
import argparse
parser = argparse.ArgumentParser(description="this is a self-intruduction demo")
parser.add_argument('-n','--name', default=' Li ')
parser.add_argument('-y','--year', default='20')
args = parser.parse_args()
print(args)
name = args.name
year = args.year
print('my nameus {} andei am {}years old'.format(name,year))
首先导入argparse
的包,然后在argparse
包中的argumentparser
类生成一个parse
的对象(参数解析器),description
是描述信息。
然后我们使用parse.add_argument()
来增加参数,default
参数表示在我们没有给name
和year
提供参数的时候,程序就会默认使用这个default
的参数。
最后采用对象的parse_args
获取解析的参数。arg.name(arg.year)
获取arg中的参数。
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
定义应该如何解析一个命令行参数。下面每个参数有它们自己详细的描述,简单地讲它们是:
name or flags
- 选项字符串的名字或者列表,例如foo 或者-f, --foo。
action
- 在命令行遇到该参数时采取的基本动作类型。
nargs
- 应该读取的命令行参数数目。
const
- 某些action和nargs选项要求的常数值。
default
- 如果命令行中没有出现该参数时,就使用这个默认值。
type
- 命令行参数应该被转换成的类型。
choices
- 参数可允许的值的一个容器。
required
- 该命令行选项是否可以省略(只针对可选参数)。
help
- 参数的简短描述。
metavar
- 参数在帮助信息中的名字。(别名)
dest -
给parse_args()返回的对象要添加的属性名称。