Python argparse参数管理学习笔记1
1.前言
最近尝试学习使用argparse进行参数管理,顺便改善一下我那丝毫都不专业的、简单粗暴的代码习惯。
argparse模块可以让人轻松地编写用户友好地命令行接口,并且还能够自动生成帮助与使用手册,并在用户给程序传入无效参数时报出错误信息。
2.使用步骤
首先我们需要先实例化一个ArgumentParser对象:
import argparse parser = argparse.ArgumentParser(description = 'A_simple_demo')
description就是对整个程序的简单描述,主要说明程序的功能与作用。
然后我们就可以使用add_argument函数进行参数的添加,参数的添加有以下几种较为典型的例子:
1.
parser.add_argument('echo', help = 'echo the thing you use here')
args = parser.parse_args()
print(args.echo)
这块代码实现的功能是重复命令行中输入的内容,很简单,很鸡肋
2.但是,我们如果直接向parser传递变量,那么它默认接收的是str类型(即使我们传输的是一个数字)
因此,我们还可以对add_argument中的参数类型进行指定:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number", type=int)
args = parser.parse_args()
print(args.square**2) #下面是这段代码运行的结果
$ python3 prog.py 4
16
$ python3 prog.py four
usage: prog.py [-h] square
prog.py: error: argument square: invalid int value: 'four'
这样它就能将输入的数字存储为int类型,而至于不能够存储为int的输入,它就会报错
3.当然我们也可以用default为变量设置一个默认值:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number", type=int, default=3)
args = parser.parse_args()
print(args.square**2) #以下是该代码运行的结果
$ python3 prog.py
9
一般来说,在我们向parser中添加变量时,有了变量名,有了help,有了type,有了default,就已经是个完整的添加变量的流程了。
下面再补充几个add-argument的变量。
4.首先是action='store_true',一旦我们指定了一个变量的action=‘store_true',那么我们只要在命令行中调用这个变量,它就会被定义为True(不需要指定变量的值),例如:
import argparse
parser = argparse.ArgumentParser(description = 'A_simple_demo')
parser.add_argument('--sparse', action='store_true', default=False, help = 'GAT with sparse version or not.') #这里将sparse的值默认地定义为False,但如果我们在命令行调用--sparse,那么它就会被置为True
print(args.sparse)
#下面是程序运行的结果
$ python parse_test.py --sparse
True
$ python parse_test.py
False
5.我们还可以通过在命令行中输入--help,来获取整个parser的帮助文本,以及各个变量的帮助文本
import argparse
parser = argparse.ArgumentParser(description = 'A_simple_demo')
parser.add_argument('--sparse', action='store_true', default=False, help = 'GAT with sparse version or not.')
parser.add_argument('--seed', type = int, default = 72, help = 'Random seeed.')
parser.add_argument('--epochs', type = int, default = 10000, help = 'Number of epoches to train.')
args = parser.parse_args()
#输出结果
$ python parse_test.py --help
usage: parse_test.py [-h] [--sparse] [--seed SEED] [--epochs EPOCHS]
A_simple_demo
optional arguments:
-h, --help show this help message and exit
--sparse GAT with sparse version or not.
--seed SEED Random seeed.
--epochs EPOCHS Number of epoches to train.
通过--help,我们就可以查看整个模型的功能以及每个变量的作用
6.如果想给变量赋一个列表作为它的值,那么可以如下操作:
import argparse
parser = argparse.ArgumentParser(description = 'A_simple_demo')
parser.add_argument('--list', nargs = '+', default = ['信贷业务', '财务管理'], help = 'A cute list.')
args = parser.parse_args()
print(args.list)
#代码运行结果如下
$ python parse_test.py --list 请 PSG.LGD战队 挑选 英雄
['请', 'PSG.LGD战队', '挑选', '英雄']
也就是说,如果要将一系列值整合作为列表传入,可以设置nargs='+',如果希望指定不同类型的值,可以设置type=int(或者其它形式)
Python argparse参数管理学习笔记1的更多相关文章
- C++内存管理学习笔记(7)
/****************************************************************/ /* 学习是合作和分享式的! /* Auth ...
- C++内存管理学习笔记(5)
/****************************************************************/ /* 学习是合作和分享式的! /* Auth ...
- C++内存管理学习笔记(6)
/****************************************************************/ /* 学习是合作和分享式的! /* Auth ...
- $《利用Python进行数据分析》学习笔记系列——IPython
本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...
- Docker Image管理学习笔记,ZT
Docker Image管理学习笔记 http://blog.csdn.net/junjun16818/article/details/38423391
- Python 开发与接口测试学习笔记
这是我跟着虫师学习中积累下来的学习笔记,写得比较简单,适合想学习Python开发与接口测试的初学者学习. 一.开发投票系统 1.参考官网文档,创建投票系统. https://docs.djangopr ...
- Linux文件与目录管理(学习笔记)
本笔记为<鸟哥linux私房菜>第六章学习笔记 一.目录与路径 相对路径与绝对路径 绝对路径:一定由根目录 / 写起 正确度比较好 相对路径:不是由 / 写起 ...
- Python框架之Django学习笔记(十七)
Django框架之表单(续二) 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部 ...
- C++内存管理学习笔记(4)
/****************************************************************/ /* 学习是合作和分享式的! /* Auth ...
- C++内存管理学习笔记(3)
/****************************************************************/ /* 学习是合作和分享式的! /* Auth ...
随机推荐
- JS刷题自制参考知识
(建议复制到本地,需要看的时候打开Typora,大纲点击要查的内容即可,我一般记不清某个方法的时候就查一下.) 基础 Typescript TypeScript是一个开源的.渐进式包含类型的JavaS ...
- Docker 修改容器中的mysql密码
1.查看容器服务 docker ps2.进入mysql容器 docker exec -it mysql /bin/bash 注:mysql为容器的名字 3.登录MySQL mysql -u root ...
- 语法分析~LL1的实现
语法分析之 LL1分析法实现 一.设计目的 根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析.本次实验的目的主要是加深对预测分析LL(1)分析法的理解. 二.设计要求 程序输入/ ...
- WebLogic & Kubernetes
搭建kubernetes集群环境 安装前的规划 主机名 地址 角色 组件 k8s-master 192.168.56.118 k8s-master etcd.kube-apiserver.kube-c ...
- STM32的USART的DMA不定长度收发代码
/* * 函数名:USART1_DMA_Config * 描述 :串口1的DMA 的初始化配置 * 输入 :无 * 输出 : 无 * 调用 :在USART1_INIT()中被调用 */ voi ...
- 如何让Macbook Touch Bar 一直显示F1~F12
原始状态 修改过程 系统偏好设置 > 键盘 将Touch Bar Shous 修改为F1, F2 ,etc. 结果
- VS工具显示小技巧,显示内联参数
工具---选项---文本编辑器---C#---高级---在显示内联参数名称提示前面打勾. 则可以在代码中看到参数提示信息.
- Java学习小总结它又又又又来啦!
又到了输出总结的时候啦,话不多说,直接开始输出! 一.final final修饰符的主要作用就是强调它所修饰的板块的"最后"性: 若是修饰成员方法:那么成员方法不可以再被重写: 若 ...
- 2023年数字化经济与管理科学国际学术会议(CDEMS2023)
基本信息 大会官网:www.cdems.org 大会时间:2023年4月21-23日 大会地点:中国开封 截稿时间:2023年4月16日(此处有变动) 接受/拒稿通知:投稿后1周 收录检索:CPCI, ...
- 搭建react的架手架
1.回顾 cnpm i @vue/cli -g ----- 4的脚手架 ------ webpack 4 cnpm i @vue/cli@3 -g ----- 3的脚手架 ------ webpack ...