python argparse模块_Python常用模块(一)--argparse模块

argparse模块简介

今天看到一个同事写的脚本,脚本中用了argparse模块。这个模块之前我没有使用过,所以需要系统的学习一下。

argparse简介:

argparse模块是python的一个命令行解析包,可以十分方便的对python文件进行命令行读写。

argparse模块是python中自带的模块,不需要再安装。

使用时先导入模块,import argparse

官网文档:https://docs.python.org/3/library/argparse.html

1. 简单使用

步骤:

创建 ArgumentParser() 对象

调用 add_argument() 方法添加参数

使用 parse_args() 解析添加的参数

import argparse

parser =argparse.ArgumentParser()

parser.add_argument("square", help="请输入一个数字", type=int)

parser.add_argument("input_str", help="请输入一个字母", type=str)

args=parser.parse_args()

print(args.square** 2)

print(args.input_str)

把上面的代码保存到test_argparse.py文件,

1)命令行运行时,不添加参数:在终端运行python3 test_argparse.py ,运行结果如下:

$python3 test_argparse.py

usage: test_argparse.py [-h] square input_str

test_argparse.py: error: the following arguments are required: square, input_str

2)命令行运行时加上-h ,查看帮助:执行python3 test_argparse.py -h,运行结果如下:

$ python3 test_argparse.py -h

usage: test_argparse.py [-h] square input_str

positional arguments:

square 请输入一个数字

input_str 请输入一个字母

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

3) 命令行运行加上参数,按照提示加上一个数字,一个字母:执行python3 test_argparse.py 10 'hello world!' ,  运行结果如下

$python3 test_argparse.py 10 'hello world!'

100hello world!

4)如果输入的格式不正确,会提示类型不对,例如第1个参数输入一个字符串,运行结果如下:

$ python3 test_argparse.py 'abcd' 11usage: test_argparse.py [-h] square input_str

test_argparse.py: error: argument square: invalid int value:'abcd'

2. 添加一个位置参数

上面的例子,其实就展示了定位参数的使用。不在举例了

3. 为位置参数添加说明

4. 指定可选参数

现在看下可选参数的用法,所谓可选参数,也就是命令行参数是可选的,废话少说,看下面例子:

parser.add_argument("--square", help="display a square of a given number", type=int)

parser.add_argument("--cubic", help="display a cubic of a given number", type=int)

5. 指定参数类型

之前已经提到了用type参数就可以指定输入的参数类型。而这个type类型还可以表示文件操作的类型从而直接进行文件的读写操作。

parser.add_argument('file', type=argparser.FileType('r')) #读取文件 args = parser.parse_args()

for line inargs.file:print line.strip()

6. 为参数添加默认值

一般情况下会设置一些默认参数从而不需要每次输入某些不需要变动的参数,利用default参数即可实现。

parser.add_argument('filename', default='text.txt')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值