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的更多相关文章

  1. C++内存管理学习笔记(7)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  2. C++内存管理学习笔记(5)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  3. C++内存管理学习笔记(6)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  4. $《利用Python进行数据分析》学习笔记系列——IPython

    本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...

  5. Docker Image管理学习笔记,ZT

    Docker Image管理学习笔记 http://blog.csdn.net/junjun16818/article/details/38423391

  6. Python 开发与接口测试学习笔记

    这是我跟着虫师学习中积累下来的学习笔记,写得比较简单,适合想学习Python开发与接口测试的初学者学习. 一.开发投票系统 1.参考官网文档,创建投票系统. https://docs.djangopr ...

  7. Linux文件与目录管理(学习笔记)

    本笔记为<鸟哥linux私房菜>第六章学习笔记 一.目录与路径 相对路径与绝对路径 绝对路径:一定由根目录 / 写起              正确度比较好 相对路径:不是由 / 写起  ...

  8. Python框架之Django学习笔记(十七)

    Django框架之表单(续二) 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部 ...

  9. C++内存管理学习笔记(4)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

  10. C++内存管理学习笔记(3)

    /****************************************************************/ /*            学习是合作和分享式的! /* Auth ...

随机推荐

  1. Crypto入门 (九) easy_RSA

    前言: 建议看这篇随笔之前先看入门(8)数论基础,简单学习下,有利于你看懂后面得算法原理,链接给出:https://www.cnblogs.com/yuanchu/p/13494104.html ea ...

  2. C语言转义序列

    转义序列 含义 \a 报警(ANSIC) \b 退格 \f 换页 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 \\ 反斜杆\ \' 单引号 \" 双引号 \? 问号 \0oo ...

  3. Java压缩音频视频工具类

    /** * TODO * * @author Administrator * @version 1.0 * @date 2021/11/5 16:55 */ public class vedio { ...

  4. 用友CELL

    Cell1.login('晋业软件','1101010373','1300-0616-0122-3005'); 下载地址: https://download.csdn.net/download/wil ...

  5. 更新Vue-cli4与Eslint插件自动保存

    Vue-cli更新 此更新为Vue-cli3更新为4,可使用node来查看本机的安装版本,vue -V,此版本(cli4)需要node v8.9 或更高版本 (推荐 v10 以上),查看node版本可 ...

  6. selenium 模拟鼠标滚轮,滚动到可见的选项

    self.wrap_driver.move_to_element(locator=const_xpath.monitor_select) #鼠标移动到某个区域target = self.driver. ...

  7. Vue中 ref、$refs区别与使用

    定义2个组件: 子组件ChildrenSubRef.vue: 1 <template> 2 <div> 3 4 </div> 5 </template> ...

  8. VC9.0 for Python2

    python2安转包时提示: pip install xxx时,提示 Microsoft Visual C++ 9.0 is required 下载并安装: 链接:https://pan.baidu. ...

  9. Linux值得收藏的40个命令总结,常用的正则表达式

    1 删除0字节文件 find -type f -size 0 -exec rm -rf {} \; 2 查看进程 按内存从大到小排列 PS -e -o "%C : %p : %z : %a& ...

  10. 一文读懂字符编码ASCII、Unicode与UTF-8

    先说一下,为什么写这篇文章? 最近在写一个Http协议栈当涉及CRLF控制字符写入时,发现自己对CRLF与\r\n的关系不太了解,因此决定详细学习一下:查阅资料的同时,又遇到UTF-8与ASCII编码 ...