使用步骤:

  1. import argparse
  2. parser = argparse.ArgumentParser()
  3. parser.add_argument()
  4. parser.parse_args()
  • 首先导入该模块
  • 然后创建一个解析对象
  • 然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项
  • 最后调用parse_args()方法进行解析;解析成功之后即可使用

add_argument 参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
```

参数:

- `name or flags`:命令行参数名或者选项,如上面的address或者-p,--port.其中命令行参数如果没给定,且没有设置defualt,则出错。但是如果是选项的话,则设置为None

- `nargs`:命令行参数的个数,一般使用通配符表示,其中,`?`表示只用一个,`*`表示0到多个,`+`表示至少一个

- `dest`:如果提供dest,例如dest="a",那么可以通过args.a访问该参数

- `default`:设置参数的默认值

- `version`:打印程序版本信息

- `type`:把从命令行输入的结果转成设置的类型

- `help`:参数命令的介绍



## 示例


```python
import argparse


def build_arg_parser():
parser = argparse.ArgumentParser(description='Compress the input image \
using clustering')
parser.add_argument("--input-file", dest="input_file", required=True,
help="Input image")
parser.add_argument("--num-bits", dest="num_bits", required=False,
type=int, help="Number of bits used to represent each pixel")
return parser


if __name__=='__main__':
args = build_arg_parser().parse_args()
input_file = args.input_file
num_bits = args.num_bits

print(input_file)
print(num_bits)

在命令行中输入:

1
~  python /Users/aaron/code/argparse1.py --input-file /Users/aaron/Desktop/1.png --num-bits 8

得到:

1
2
/Users/aaron/Desktop/p/下载.png
8