概述
运行python脚本时通过命令行方式传入运行参数通常有以下两种自建方式:
下面详细说一下具体时使用
argv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# test_argv.py
import sys
args = sys.argv
print (f 'args = {args}' )
>>> output
➜ git:(master) python3 test_argv.py
args = [ 'test_argv.py' ]
➜ git:(master) ✗ python3 test_argv.py 1 2 3
args = [ 'test_argv.py' , '1' , '2' , '3' ]
➜ git:(master) ✗ python3 test_argv.py 1 2 3 'hello world !'
args = [ 'test_argv.py' , '1' , '2' , '3' , 'hello world !' ]
|
从上面可以看出,通过argv
方法获取的结果:
- 返回为list
- 第一个参数为脚本本身
- 如参数中间带空格,用引号即可
argparse
argparse模块的功能较为丰富,其核心是通过add_argument方法自定义入参的:标志、格式、类型和范围等特性,常用如下:
- *name_or_flag - 定义入参名或flag,如'-n', '--number'
- type - 指定入参类型
- choices - 指定入参范围
- default - 指定入参默认值
- required - 指定该餐素是否不要,布尔类型
- help - 参数概述
更多请参考: argparse
实例
test_argv.py
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
|
import argparse
# 初始化一个parser对象
parser = argparse.ArgumentParser(description = 'test module of argparse' )
# 指定-n/--number的参数
# 类型为int
# help为简短地说明
parser.add_argument(
'-n' , '--number' , type = int ,
help = 'args of number'
)
# 指定-o/--output参数
# 并限制类型为:['txt', 'csv', 'doc']
parser.add_argument(
'-o' , '--output' , type = str ,
choices = [ 'txt' , 'csv' , 'doc' ],
help = 'output method'
)
# 指定-d/--default参数
# 并限制类型为:['txt', 'csv', 'doc']
parser.add_argument(
'-d' , '--default' , type = int ,
choices = [_ for _ in range ( 1 , 10 )],
default = 5 ,
help = 'default'
)
# 指定位置参数foo
parser.add_argument( 'foo' )
args = parser.parse_args()
print (f 'args = {args}' )
# 获取指定参数
print (
f 'number = {args.number}, type = {type(args.number)}\n'
f 'output = {args.output}, type = {type(args.output)}\n'
f 'default = {args.default}, type = {type(args.default)}\n'
f 'foo = {args.foo}, type = {type(args.foo)}'
)
|
output
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
|
# -h - 打印help
➜ git:(master) ✗ python3 test_argv.py - h
usage: test_argv.py [ - h] [ - n NUMBER] [ - o {txt,csv,doc}]
[ - d { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 }]
foo
test module of argparse
positional arguments:
foo
optional arguments:
- h, - - help show this help message and exit
- n NUMBER, - - number NUMBER
args of number
- o {txt,csv,doc}, - - output {txt,csv,doc}
output method
- d { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 }, - - default { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 }
default
# 不带参数运行,结果为None
➜ git:(master) ✗ python3 test_argv.py
args = Namespace(number = None , output = None )
number = None
output = None
# 带参数运行
➜ git:(master) ✗ python3 test_argv.py - n 33 - - output txt
args = Namespace(number = 33 , output = 'txt' )
number = 33 , type = < class 'int' >
output = txt, type = < class 'str' >
# 参数格式错误
➜ git:(master) ✗ python3 test_argv.py - n str usage: test_argv.py [ - h] [ - n NUMBER] [ - o {txt,csv,doc}]
test_argv.py: error: argument - n / - - number: invalid int value: 'str'
➜ git:(master) ✗ python3 test_argv.py - o excel
usage: test_argv.py [ - h] [ - n NUMBER] [ - o {txt,csv,doc}]
test_argv.py: error: argument - o / - - output: invalid choice: 'excel' (choose from 'txt' , 'csv' , 'doc' )
# 默认参数
➜ git:(master) ✗ python3 test_argv.py
args = Namespace(default = 5 , number = None , output = None )
number = None , type = < class 'NoneType' >
output = None , type = < class 'NoneType' >
output = 5 , type = < class 'int' >
|
以上就是Python命令行参数argv和argparse该如何使用的详细内容,更多关于Python命令行参数argv和argparse的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/freedomlidi/p/12680005.html