美文网首页
Python学习笔记:argparse的使用

Python学习笔记:argparse的使用

作者: 闲酿星河 | 来源:发表于2019-04-30 16:49 被阅读0次
  • argparse是什么?

argparse是一个命令行参数解析模块,可以解析从命令行输入的内容。

 

  • argparse 基础

最基础的使用如下,这时只有最基础的-h参数,会输出系统默认的帮助信息。

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

 

argparse 使用举例

  • positional arguments

这类的参数在运行程序时必须填写的参数
创建 friend.py

# friend.py
# 增加 positional arguments

import argparse

parse = argparse.ArgumentParser()

# 必须输入4个参数 age height weigh tag
parse.add_argument('age')
parse.add_argument('height')
parse.add_argument('weight')
parse.add_argument('tag')

args = parse.parse_args()


def get_girlfriend(age="未知", height="未知", weight="未知", tag="女朋友"):
    print("恭喜获得一个年龄" + age + " 身高" + height + " 体重" + weight + "的" + tag)

# 使用获取的参数使用args.参数名
get_girlfriend(args.age, args.height, args.weight, args.tag)

正常运行:

>>> python3 friend.py 17 160 45kg 小萝莉
恭喜获得一个年龄17 身高160 体重45kg的小萝莉

不正常运行:会有错误提示参数输入不全

>>> python3 friend.py 12 34
usage: friend.py [-h] age height weight tag
friend.py: error: the following arguments are required: weight, tag

那么如果不知道输入什么不想输入呢?可以给参数添加一个默认值

friend.py
···
parse.add_argument('age', help="Age of girlfriend", nargs='?',  default='未知')
parse.add_argument('height', nargs='?', default='未知')
parse.add_argument('weight', nargs='?',  default='未知')
parse.add_argument('tag', nargs='?',  default='女朋友')
···

narg='?' 表示参数可以有0个或1个,
default = "默认值" 定义参数默认值
更改后只运行程序不输入全部参数

>>> python3 friend.py
恭喜获得一个年龄未知 身高未知 体重未知的女朋友
>>> python3 friend.py 33 155 
恭喜获得一个年龄33 身高155 体重未知的女朋友

 

如何加上帮助信息 ?
通过 argparse.ArgumentParser(description="程序描述")添加整个程序的帮助信息
通过 add_argument('参数名', help="描述")添加参数的信息

修改 friend.py 代码如下

···
parse = argparse.ArgumentParser(description="Who is your girlfriend")
parse.add_argument('age', help="Age of girlfriend")
···

运行 -h 可以查看整个程序和输入参数的描述

# friend.py

>>> python3 friend.py -h
usage: friend.py [-h] age height weight tag

Who is your girlfriend

positional arguments:
  age         Age of girlfriend
  height
  weight
  tag

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

 

  • optional arguments

可选参数,运行程序时可以不输入。
-指定短参数, --指定长参数,可以同时存在。
使用举例 choicegirls.py
action='store_true' 表示不输入参数时默认为true

# 输入-g 命令后列出供选择的girls
# choicegirls.py 

import argparse

parse = argparse.ArgumentParser()
parse.add_argument('-g', '--girls', action='store_true')
args = parse.parse_args()

# 通过解析后,值保存在args.girls内
if args.girls:
    print("1.年龄18的小萝莉")
    print("2.年龄30的富婆")

运行如下

>>> python3 friend.py -g
1.年龄18的小萝莉
2.年龄30的富婆

 

  • type和choice

因为默认的参数类型为str,type 可以将输入的内容转为int。
choice=[1,2] 设置该参数只能选择1或者2.
输入 -c 命令后选择
添加代码

# choicegirls.py 

···
parse.add_argument('-c', type=int, choices=[1, 2])
···
if args.c:
    print("恭喜选择了" + str(args.c))

运行

>>> python3 friend.py -c 1
恭喜选择了1

输入不是1或者2时报错

python3 friend.py -c 3
usage: friend.py [-h] [-g] [-c {1,2}]
friend.py: error: argument -c: invalid choice: 3 (choose from 1, 2)

相关文章

网友评论

      本文标题:Python学习笔记:argparse的使用

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