码迷,mamicode.com
首页 > 编程语言 > 详细

python argparse详解

时间:2018-06-08 16:02:19      阅读:2171      评论:0      收藏:0      [点我收藏+]

标签:image   表示   可选参数   png   string类   ntp   src   输出   报错   

1.argparse模块作用
用于解析命令行参数

2.位置参数和可选参数
运行以下代码:

import argparse
parser = argparse.ArgumentParser()
args = parser.parse_args()

运行结果:
技术分享图片

参数为-h或--help时,parser.parse_args()会输出命令行的位置参数position arguments和可选参数optional arguments
位置参数:按照参数的顺序解析,参数必填
可选参数:以-或--开头,参数非必填

位置参数,可选参数示例如下:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="position")
parser.add_argument("--mode", "-m", type=int, help="optional")
args = parser.parse_args()

运行结果:
技术分享图片

num为一个位置参数,type表示参数的类型,参数默认都是string类型的,help表示参数的描述
--mode,以--开头,为一个可选参数,可以有多个别名(--mode,-m)
可选参数,不是必填的,一般用来作条件分支,如下所示:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="position")
parser.add_argument("--mode", "-m", type=int, help="optional")
args = parser.parse_args()
result = 0
if args.mode == 1:
    result = args.num ** 2
else:
    result = args.num * 2
print(result)

运行结果:
技术分享图片

当mode=1时,计算num的平方,否则,计算num*2

指定参数的范围,choice

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, choices=[5, 6, 7], help="position")
parser.add_argument("--mode", "-m", action="store_true", help="optional")
args = parser.parse_args()
result = 0
if args.mode:
    result = args.num ** 2
else:
    result = args.num * 2
print(result)

运行结果:
技术分享图片

3.可选参数
位置参数没有太多要讲的,必填,类型必须和定义的一致(默认为string),否则会报错。
可选参数有以下几种action
1)store_true
有参数时为true,没有为false,有参数时不能指定参数的值

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="position")
parser.add_argument("--mode", "-m", action="store_true", help="optional")
args = parser.parse_args()
result = 0
if args.mode:
    result = args.num ** 2
else:
    result = args.num * 2
print(result)

运行结果:
技术分享图片

2)count
数值,-m表示1,-mm或-m -m表示2,以此类推

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, choices=[5, 6, 7], help="position")
parser.add_argument("--mode", "-m", action="count", help="optional")
args = parser.parse_args()
result = 0
if args.mode == 1:
    result = args.num ** 2
elif args.mode == 2:
    result = args.num * 2
else:
    result = args.num
print(result)

技术分享图片

不加参数,表示None,可以设置默认count,则-m表示默认值+1

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("num", type=int, help="position")
parser.add_argument("--mode", "-m", action="count", default=1, help="optional")
args = parser.parse_args()
result = 0
if args.mode == 1:
    result = args.num ** 2
elif args.mode == 2:
    result = args.num * 2
else:
    result = args.num
print(result)

运行结果:
技术分享图片

python argparse详解

标签:image   表示   可选参数   png   string类   ntp   src   输出   报错   

原文地址:https://www.cnblogs.com/shijingjing07/p/9155611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!