Python中的Argparse模块

argparse模块

作用: argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。
使用步骤

  1. import argparse 导入模块
  2. parser = argparse.ArgumentParser() 创建一个解析对象
  3. parser.add_argument() 向该对象中添加需要关注的命令行参数和选项
  4. parser.parse_args() 进行解析

一个例子了解argparse用法

import argparseparser = argparse.ArgumentParser(description="calculate the square of a given number")
# 定位参数:参数名称,参数类型(参数默认是str,输入非str时需要指定参数类型),参数帮助信息
parser.add_argument("number", type=int, help="input a number to calculate it's square")
# 可选参数:参数的简写,参数全称,参数类型,参数的可选值,参数帮助信息  
parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1],  help="increase output verbosity")  
args = parser.parse_args()if args.verbosity == 0:print("verbosity = 0 ")
elif args.verbosity == 1:print("verbosity = 1 ")print("the square of %d is %d" % (args.square, args.square ** 2))
else:print("verbosity = None")

命令行输入 python parser_test.py,会提示使用的方法:在parser_test.py可选择性输入-h,可选择性输入-v(但-v的取值只能是0和1,必须输入number。

python parser_test.py
usage: parser_test.py [-h] [-v {0,1}] number
parser_test.py: error: the following arguments are required: number

使用 -h 来查看帮助(-h是自带的可选择参数)

python parser_test.py -h
usage: parser_test.py [-h] [-v {0,1}] number
calculate the square of a given number
positional arguments:
  number   input a number to calculate it’s square
optional arguments:
  -h, --help   show this help message and exit
  -v {0,1}, --verbosity {0,1}   increase output verbosity

输入参数number,定位参数只需要根据参数声明时候的顺序输入即可

python parser_test.py 2
verbosity = None

输入参数verbosity,可选参数必须指明是哪个可选参数,用缩写或非缩写都可以

python parser_test.py 2 0
usage: parser_test.py [-h] [-v {0,1}] number
parser_test.py: error: unrecognized arguments: 0

python parser_test.py 2 -v 0
verbosity = 1
the square of 2 is 4

更多参数介绍查看:Python 命令行工具 argparse 模块使用详解

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

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

相关文章

分治应用--最近点对问题 POJ 3714

文章目录1. 问题描述2. 解题思路3. 实现代码4. POJ 37141. 问题描述 二维平面上有n个点,如何快速计算出两个距离最近的点对? 2. 解题思路 暴力做法是,每个点与其他点去计算距离,取最小的出来,复杂度O(n2)采用分治算…

Java多线程系列(十):源码剖析AQS的实现原理

在并发编程领域,AQS号称是并发同步组件的基石,很多并发同步组件都是基于AQS实现,所以想掌握好高并发编程,你需要掌握好AQS。 本篇主要通过对AQS的实现原理、数据模型、资源共享方式、获取锁的过程,让你对AQS的整体设计…

玩转二算法课的笔记-第一章

1 问题:对一组数据进行排序 回答:快速排序算法o(NLOGN),错误。 关键词:思考 应该问面试官,这组数据有什么样的特征? 比如;有没有可能包含大量重复的元素? 如果有这个可能的话,三路快…

微软亚洲研究院NLC组招聘实习生!与一线研究员共探NLP前沿与落地!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术MSRA-NLC组招人啦!微软亚洲研究院(MSRA)自然语言计算组(NLC)招收长期实习生一名,与一线研究员共同进行自然语言处理领域的科研项目和落地…

Theano+Keras开发环境搭建(最简单的教程)

目录:介绍:一、Theano 安装二、keras 安装三、安装过程出现的错误(theano.configdefaults): g not available, if using conda: conda install m2w64-toolchainRemoveError: setuptools is a dependency of conda and cannot be removed from condas ope…

分治应用--万里挑一 找假硬币

文章目录1. 问题描述2. 解题思路3. 代码实现1. 问题描述 n 个硬币中有1枚是假币,真假币唯一的区别是假币重量轻,如何快速找出假币 2. 解题思路 暴力做法,一个一个的称重,O(n)复杂度分治思路 将硬币等分…

Java多线程与并发系列从0到1全部合集,强烈建议收藏!

在过去的时间中,我写过Java多线程与并发的整个系列。 为了方便大家的阅读,也为了让知识更系统化,这里我单独把Java多线程与并发的整个系列一并罗列于此,希望对有用的人有用,也希望能帮助到更多的人。 以下为整个目录&a…

论文浅尝 | 基于图注意力的常识对话生成

OpenKG 祝各位读者新春快乐,猪年吉祥!来源:IJCAI 2018.论文下载地址:https://www.ijcai.org/proceedings/2018/0643.pdf项目源码地址:https://github.com/tuxchow/ccm动机在以前的工作中,对话生成的信息源是…

Facebook、阿里等大佬现身说法,NLP是否被高估了?

NLP (自然语言处理),利用计算机对人类的语言文字进行处理。由于语言文字是人类交流沟通的最基本方式,因此 NLP 也是最典型的 AI 领域之一。NLP 被誉为“人工智能皇冠上的明珠”。这话也许没错,但听起来难免空洞。所以我去实际问了3位从事 NLP…

玩转算法面试-第二章

1 时间复杂度分析 正常处理的数据规模,为了保险起见,可将将上面的数在除以10,防止电脑假死。 空间复杂度分析: 注意问题:递归调用是有空间代价的 3 常见的复杂度分析 翻转的代码: 选择排序的方法&a…

论文笔记(Attentive Recurrent Social Recommendation)

注意力循环社交推荐 原文链接:Attentive Recurrent Social Recommendation, SIGIR’18 原理:将用户的朋友和历史交互项按时间划分,用注意力机制整合各个时段的朋友影响和交互项影响后输入LSTM来学习动态用户向量,动态用户向量与动…

回溯算法(Backtracking Algorithm)之八皇后问题

文章目录1. 回溯算法思想2. 算法应用2.1 八皇后问题1. 回溯算法思想 前面讲过贪心算法并不能保证得到最优解,那怎么得到最优解呢? 回溯思想,有点类似枚举搜索。枚举所有的解,找到满足期望的解。为了有规律地枚举所有可能的解&am…

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这…

论文浅尝 | Generative QA: Learning to Answer the Whole Question

链接: https://openreview.net/forum?idBkx0RjA9tX传统的机器阅读理解的模型都是给定 context 和 question, 找出最有可能回答该 question 的 answer,用概率表示为 p(a|q,c),这其实是一个判别模型。判别模型在大多数任务上可以取得比生成模型更好的准确…

打破BERT天花板:11种花式炼丹术刷爆NLP分类SOTA!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | JayLou娄杰编 | 小轶在2020这个时间节点,对于NLP分类任务,我们的关注重点早已不再是如何构造模型、拘泥于分类模型长什么样子了。如同CV领域当前的重点一样,我们更应该…

论文笔记(A Neural Influence Diffusion Model for Social Recommendation)

神经影响传播模型为了社交推荐 原文链接:A Neural Influence Diffusion Model for Social Recommendation, SIGIR’19 原理:社交网络上应用GNN提取朋友对用户的影响候选项对用户历史交互项的注意力影响用户向量,用户向量和项向量的内积预测评…

玩转算法面试-第三章

数组中常见的问题 排序: 选择排序;插入排序;归并排序;快速排序 查找:二分查找法 数据结构:栈;队列;堆 … 二分查找法: 1964年提出,没有bug的二分查找法是在1…

回溯应用-- 0-1背包问题

文章目录1. 问题描述2. 回溯解决思路1. 问题描述 0-1背包非常经典,很多场景都可以抽象成这个问题。经典解法是动态规划,回溯简单但没有那么高效。 有一个背包,背包总的承载重量是 W kg。现有n个物品,每个物品重量不等&#xff0…

Java多线程系列(五):线程池的实现原理、优点与风险、以及四种线程池实现

为什么需要线程池 我们有两种常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。但是我们创建这两种线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁…

论文浅尝 | 面向单关系事实问题的中文问答模型

来源:NLPCC 2017论文下载地址:http://tcci.ccf.org.cn/conference/2017/papers/2003.pdf动机开放领域的QA问题是一个被广泛研究的问题,而且目前这个问题并没有被很好地解决。在中文领域,相关的数据集并不多。而NLPCC开放了一个KBQ…