Python模块(1)-Argparse 简易使用教程

argparse 简易使用教程

  • 1.概况
  • 2. action
  • 3. argparse 使用demo
    • 3.1 argparse 实现加法器
    • 3.2 D-Model parser

1.概况

argparse是Python中用于解析命令行参数的一个模块,可以自动生成help和usage信息;当从终端输入的参数无效时,模块会输出提示信息。

必选参数和可选参数

# step1.创建ArgumentParser对象parser
parser=Argparse.ArgumentParser(description="process some integer.")
## parser保存了所有必要信息,用于将从命令行中读入的参数 解析为对应的python数据类型。
## description,用于简要介绍程序的功能和工作原理。在帮助消息中,显示在 命令行用法字符串 和 各种参数的帮助消息之间。
## prog,用于显示“程序文件名”,默认为“运行文件名”
## usage,程序使用说明。当使用了 usage 的参数之后,会覆盖覆盖了 prog 参数里面的值。
# step2: 给parser添加信息读取字段,这些字段决定parser解析读入参数的方法
parser.add_argument() 
# ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
## name,用于保存输入变量
## action='store_const'  存储由const关键字参数指定的值。
## default值是一个字符串,则解析器会将该值解析为一个命令行参数,变量的默认输入
## type 指定变量的类型
## nargs单个命令行参数与要执行的单个操作相关联
## nargs='+'.'+'和'*'一样,出现的所有命令行参数都被收集到一个列表中。
## 当ArgumentParser生成帮助信息时,默认情况下使用dest的值作为每个对象的“名字”,metavar会改变显示出来的名字 - parse_args() 对象中属性的名字仍然由dest的值决定。(metavar: 这个参数用于help 信息输出中)
# step3:解析parser保存的参数,返回一个命名空间
# 在实际python脚本中parse_args()一般不使用参数,它的参数由sys.argv确定。
args = parser.parse_args() 

2. action

action关键字默认状态有两种,store_true和store_false,若输入命令时,不指定其参数,则store_true显示为False,store_false显示为True。可用作一个开关操作一个开关操作。【终端命令带上之后会使用默认值】

parser.add_argument('--cuda', action='store_true', help='enables cuda')
# 终端命令不加入--cuda, args.cuda=False, 终端命令加入--cuda, args.cuda=True
parser.add_argument('--cuda', action='store_false', help='enables cuda')
# 终端命令不加入--cuda, args.cuda=True, 终端命令加入--cuda, args.cuda=False

3. argparse 使用demo

3.1 argparse 实现加法器

调用 parse_args() 将返回一个具有两个属性的对象, integers 和 accumulate 。累和语句实现,默认对输入的数据进行求最大,如果解析到sum的参数,那么求和

import argparse
parser=argparse.ArgumentParser(description="process some integer.")
parser.add_argument('integers',metavar='N',type=int,nargs='+',help='an integer for accumulator')         # 可以读一个数组
parser.add_argument('--sum',dest='accumulate',action='store_const',const=sum,default=max,help='sum the integers (default:find the max)'
args=parser.parse_args()
print(args.accumulate(args.integers))     # 居然可以当作函数调用

在这里插入图片描述
上面程序实现了,默认求最大,可选求和的功能,结合上面程序,讲解三个函数中常用的选项含义:

3.2 D-Model parser

在程序会见到最简单的形式,指定,参数类型,可选值,默认值,和帮助信息等,在运行程序的时候可以通过命令行输入用户制定的参数,否则使用默认参数。
在这里插入图片描述

更多内容可以详见以下两篇博文:
https://cloud.tencent.com/developer/section/1370514
https://www.cnblogs.com/piperck/p/8446580.html
https://blog.csdn.net/LemonTree_Summer/article/details/80749359

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis——NOSQL及redis概述

NoSql入门概述 单机Mysql的美好时代 瓶颈: 数据库总大小一台机器硬盘内存放不下数据的索引(B tree)一个机器的运行内存放不下访问量(读写混合)一个实例不能承受Memcached(缓存) MySql 垂直拆…

Python(17)-元组tuple

高级数据类型--元组1.元组的定义2.元组基本操作3.元组的循环遍历4.元组的应用场景5.元组与格式化字符串6.元组与列表之间的转换元组的最大特征就是可访问不可改,可作为字典的键值,因为键值必须是唯一的。字符串也是不可边类型,因此也适合做字…

深度学习(莫烦 神经网络 lecture 3) Keras

神经网络 & Keras 目录 神经网络 & Keras目录1、Keras简介1.1 科普: 人工神经网络 VS 生物神经网络1.2 什么是神经网络 (Neural Network)1.3 神经网络 梯度下降1.4 科普: 神经网络的黑盒不黑1.5 Why Keras?1.6 兼容 backend 2、如何搭建各种神经网络2.1 Regressor回归…

阿里Java编程规约(集合)

【强制】关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要覆写 equals,就必须覆写 hashCode。 2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对…

Pytorch(3)-数据载入接口:Dataloader、datasets

pytorch数据载入1.数据载入概况Dataloader 是啥2.支持的三类数据集2.1 torchvision.datasets.xxx2.2 torchvision.datasets.ImageFolder2.3 写自己的数据类,读入定制化数据2.3.1 数据类的编写map-style范式iterable-style 范式2.3.2 DataLoader 导入数据类1.数据载入…

大数据学习(5)-- NoSQL数据库

文章目录目录1.NoSQL的介绍2.NoSQL产生的原因2.1 web2.02.2 NoSQL兴起原因3.NoSQL和关系数据库的区别4.NoSQL的四大类型4.1 键值数据库4.2 列族数据库4.3 文档数据库4.4 图形数据库4.5 不同类型的NoSQL数据库进行比较5.NoSQL的三大基石5.1 CAP5.2 base5.3 最终一致性6.从NoSQL到…

经典算法重点总结

文章目录排序算法冒泡排序直接插入排序希尔排序直接选择排序快速排序堆排序归并排序总结查找算法顺序查找二分查找插值查找斐波那契查找树表查找分块查找哈希查找总结排序算法 冒泡排序 void bubbleSort(int a[] , int n){for(int i n-1 ; i > 0 ; i--){for(int j 0 ; j …

redis——HyperLogLog

HyperLogLog 是一种概率数据结构,用来估算数据的基数。数据集可以是网站访客的 IP 地址,E-mail 邮箱或者用户 ID。 基数就是指一个集合中不同值的数目,比如 a, b, c, d 的基数就是 4,a, b, c, d, a 的基数还是 4。虽然 a 出现两次…

机器学习知识总结系列-机器学习中的优化算法总结(1-4)

文章目录1.梯度下降1.1批量梯度下降(BGD)1.2随机梯度下降(SGD)1.3 小批量随机梯度下降(MSGD)1.4 比较:1.5 动量算法(momentum)1.6 Nestrov Momentum2. 自适应方法2.1 自适应学习率算法&#xff…

Python(19)-字符串、Unicode字符串

高级数据类型--字符串、Unicode字符串1.字符串的定义2.字符串的长度、计数、Index3.字符串常用方法3.1判断类型3.2查找和替换3.3文本对齐3.4去除空白字符.strip()4.字符串的拆分和拼接5.字符串的切片6.跨行字符串7.包含转义字符r8.字符串的分割与连接9.Unicode字符串字符串-不变…

机器学习中的距离和损失函数

文章目录13.1 距离度量13.2 损失函数13.1 距离度量 距离函数种类:欧式距离、曼哈顿距离、明式距离(闵可夫斯基距离)、马氏距离、切比雪夫距离、标准化欧式距离、汉明距离、夹角余弦等常用距离函数:欧式距离、马氏距离、曼哈顿距离…

Python(20)-高级数据类型的公共方法

高级数据类型的公共方法1内置函数2高级数据类型切片3运算符,*,in4完整的for循环公共方法是列表,元组,字典,字符串都能使用的方法1内置函数 内置函数:不需要import导入模块,就可以直接使用的函数…

redis——为什么选择了跳表而不是红黑树?

跳表是个啥东西请看这个文章。 我们知道,节点插入时随机出一个层数,仅仅依靠一个简单的随机数操作而构建出来的多层链表结构,能保证它有一个良好的查找性能吗?为了回答这个疑问,我们需要分析skiplist的统计性能。 在…

机器学习公式推导

文章目录线性回归逻辑回归线性判别分析PCAk-means决策树svm随机深林GBDTxgboost强化学习MapReduce线性回归 逻辑回归 对于分类问题:输出0/1,超过[0,1]没有意义,使用sigmoid函数 **代价函数:**使用L2平方差,由于模型函…

Python综合应用(1)--名片管理系统开发

第一个综合应用-名片管理系统1框架搭建2完善功能综合应用,名片管理系统 欢迎界面,不同选项,1.新建名片,2.显示全部,3 查询名片(查到之后可以修改名片信息),0 退出系统 程序开发流程…

springboot1——spring相关入门

spring 随着我们开发,发现了一个问题: A---->B---->C---->D 在A中创建B的对象调用B的资源 在B中创建C的对象调用C的资源 在C中创建D的对象调用…

大数据学习(06)-- 云数据库

文章目录目录1.什么是云数据库?1.1 云计算和云数据库的关系1.2 云数据库的概念1.3 云数据库的特性1.4 云数据库应用场景1.5 云数据库和其他数据的关系2.云数据库产品有哪些?2.1 云数据库厂商概述2.2 亚马逊云数据库产品2.3 Google云数据库产品2.4 微软云…

Python(21)--变量进阶

变量的进阶使用1变量引用2可变、不可变数据类型3局部变量和全局变量4.Tips本系列博文来自学习《Python基础视频教程》笔记整理,视屏教程连接地址:http://yun.itheima.com/course/273.html在博文:https://blog.csdn.net/sinat_40624829/articl…

机器学习知识总结系列-机器学习中的数学-矩阵(1-3-2)

矩阵 SVD 矩阵的乘法状态转移矩阵状态转移矩阵特征值和特征向量 对称阵 正交阵 正定阵数据白化矩阵求导 向量对向量求导 标量对向量求导 标量对矩阵求导一.矩阵1.1 SVD奇异值分解(Singular Value Decomposition),假设A是一个mn阶矩阵&#xf…

面试中海量数据处理总结

教你如何迅速秒杀掉:99%的海量数据处理面试题 前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获&…