美文网首页
Python argparse介绍

Python argparse介绍

作者: 看着我别说话 | 来源:发表于2020-02-21 20:29 被阅读0次

argparse 模块是 Python 标准库中推荐的命令行解析模块。用来写命令行脚本十分好用。

命令行分三种情况:

  • 参数
  • 短选项,分无参和有参数
  • 长选项,分无参和有参数

我们就通过以上情况来分别介绍(多看代码和注释)。

导入以及使用模板

# 导入
import argparse
# 获取实例
parser = argparse.ArgumentParser()
# 解析命令行参数
parser.parse_args()

输出结果:

python3 argparse_example.py -h
usage: argparse_example.py [-h]

optional arguments:
  -h, --help  show this help message and exit

argparse 默认有一个帮助选项,用于说明如何使用该命令。

参数

获取一个或者多个参数

# 导入
import argparse
# 设置命令行的描述信息
parser = argparse.ArgumentParser(description='argparse demo')
# 设置一个参数,narges 默认是1,可以不写,type可以是int,str,float等等
parser.add_argument('arg1', nargs=1, help='set arg1', type=int)
# 设置多个参数
parser.add_argument('argn', nargs='*', help='set argn')
# 解析命令行参数
args = parser.parse_args()
# 获取参数
print(args.arg1)
print(args.argn)

输出结果:

python3 argparse_example.py 123 abc def
[123]
['abc', 'def']

注意获取的参数是一个列表。

帮助信息:

python3 argparse_example.py -h
usage: argparse_example.py [-h] arg1 [argn [argn ...]]

argparse demo

positional arguments:
  arg1        set arg1
  argn        set argn

optional arguments:
  -h, --help  show this help message and exit

短选项

不带参数

# 导入
import argparse
# 获取示例
parser = argparse.ArgumentParser(description='argparse demo')
# 设置短选项,store_true表示如果指定-v选项,则把TRUE分配给返回值
parser.add_argument('-v', help='increase output verbosity', action='store_true')
# 解析命令行参数
args = parser.parse_args()
if args.v:
    print('verbosity turned on')
else:
    print('verbosity turned off')

输出:

python3 argparse_example.py -v
verbosity turned on
python3 argparse_example.py
verbosity turned off

帮助信息:

python3 argparse_example.py -h
usage: argparse_example.py [-h] [-v]

argparse demo

optional arguments:
  -h, --help  show this help message and exit
  -v          increase output verbosity

这里 -v 短选项是可选的,如果要设置成必选,可以在 add_argument函数里加参数 required=True

带参数

# 导入
import argparse
# 获取示例
parser = argparse.ArgumentParser(description='argparse demo')
# 设置短选项,并设置参数名
# 我将短选项改成了必须,注意!
parser.add_argument('-v', help='increase output verbosity', 
        metavar='verbosity', required=True)
# 解析命令行参数
args = parser.parse_args()
print(args.v)

输出结果:

python3 argparse_example.py -v abc
abc
python3 argparse_example.py -v      
usage: argparse_example.py [-h] -v verbosity
argparse_example.py: error: argument -v: expected one argument

帮助信息:

python3 argparse_example.py -h
usage: argparse_example.py [-h] -v verbosity

argparse demo

optional arguments:
  -h, --help    show this help message and exit
  -v verbosity  increase output verbosity

如果选项需要n个参数,同样可以设置 narges

长选项

长选项和短选项使用完全相同,将 -v 改成 --Verbosity 即可。

如果短选项和长选项需要同时支持,比如帮助信息里的 -h--help ,总不能都各写一遍吧。其实可以同时申明:

# 导入
import argparse
# 获取示例
parser = argparse.ArgumentParser(description='argparse demo')
# 同时设置短选项和长选项
parser.add_argument('-v', '--Verbosity', help='increase output verbosity', 
        required=True, action='store_true')
# 解析命令行参数
args = parser.parse_args()
print(args.v)

这里我设置的是无参数情况,有参数情况参考上述。

帮助信息:

python3 argparse_example.py -h
usage: argparse_example.py [-h] -v

argparse demo

optional arguments:
  -h, --help       show this help message and exit
  -v, --Verbosity  increase output verbosity

后记

argparse 还有很多其他用法,请参考 官方教程

相关文章

网友评论

      本文标题:Python argparse介绍

      本文链接:https://www.haomeiwen.com/subject/qisodctx.html