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 ...
随机推荐
- 问题记录04:记录两种C#引用C++DLL报错的解决方法。
两种C#引用C++DLL报错的解决方法 无法加载DLL"***.dll":找不到指定的模块(异常来自HRESULT:0x8007007E) 解决方法:参考链接 试图加载格式不正确的 ...
- Windows查看CUDA版本
桌面右击,查看是否有NVIDIA控制面板 打开控制面板->帮助->系统信息->组件,可以看到CUDA版本
- EurekaServer高可用搭建
生产环境中需要搭建集群达到高可用.eurekaServer每个实例可以注册到其他一个或多个eurekaServer实例中达到高可用.配置比较简单 比如: application-master.prop ...
- python基础学习——数据容器
1.数据容器相当于C的数组 有list,tuple(元组),str,set(集合),dict五种数据容器 2.list(列表) 列表中可存在不同的数据类型,可嵌套 #反向索引 name_list = ...
- ssh反向代理树莓派+motion,实现公网远程视频监控
注意:本文公网远程监控部分需要借助有公网IP的云服务器进行ssh反向代理. 一.借助motion实现内网的视频监控 准备 插上摄像头,然后输入ls /dev/video*命令检查是否识别了摄像头 安装 ...
- Windows系统镜像下载站合集
Windows系统镜像下载站合集https://latest10.win/https://msdn.itellyou.cn/https://hellowindows.cn/https://www.im ...
- 手把手教你蜂鸟e203移植(以Nexys4DDR为例)
准备工作:(网盘链接:) 1.蜂鸟e203的RTL源码: 2.一段分频代码: 3.顶层设计文件(system.v) 4.开发板文件: 5.Nexys4DDR电路图: 6.Nexys4DDR管脚约束模板 ...
- SpringBoot笔记--自动配置(高级内容)(下集)
案例需求 实现步骤: 具体的实现 1.引入Jedis依赖 2.提供Jedis的Bean 找到SpringBoot的执行文件,按住Ctrl键,进入SpringBootApplication注解,再进入E ...
- Android笔记--Activity--启停活动页面
Activity启动 从当前页面跳转到新的页面:startActivity(new Intent(原页面.this,目标页面.class)) 而若是从当前页面返回到上一个页面,相当于关闭当前页面,使用 ...
- mybatis-plus update的三种方式
参考博客:https://blog.csdn.net/weixin_44162337/article/details/107828366 1.最常见:根据id更新,xxxService.updateB ...