Python高阶——argparse(命令行与参数解析)
文章目录
- 1.前言
- 2.创建脚本
- 3.导入解析模块
- 4.初始化、添加参数、解析参数
- 4.运行脚本
- 5.通过脚本实现计算功能
1.前言
本节,将讲解如何通过命令行传递参数。具体以代码形式讲解,保您一看就懂!
2.创建脚本
创建一个脚本命名为argparse_optional_argument.py,以便一会儿在terminal运行,注意,不能用Jupyter Notebook,它不能在terminal运行!!
3.导入解析模块
import argparse #导入模块
4.初始化、添加参数、解析参数
- 在argparse模块中调用ArgumentParser()类并实例化。
- 给通过add_argument()函数给parser添加要解析的参数,里面的参数需要用户在运行脚本的时候传入,具体怎么传会在下面给出。
- 通过parser.parse_args()将所有用户传入的参数进行解析。
if __name__ == '__main__':#初始化parserparser = argparse.ArgumentParser( description="my math script") #description为描述性内容,当运行脚本时第一行会显示my math script# 添加位置/可选参数parser.add_argument('-n','--num1', help="Number 1", type=float) parser.add_argument('-i','--num2', help="Number 2", type=float)parser.add_argument('-o','--operation', help="provide operator", default='+')# 解析参数args = parser.parse_args()print(args)'''输出:Namespace(num1=None, num2=None, operation='+')'''result = Noneif args.operation == '+':result = args.num1 + args.num2if args.operation == '-':result = args.num1 - args.num2if args.operation == '*':result = args.num1 * args.num2if args.operation == 'pow':result = pow(args.num1, args.num2)print("Result : ", result)
4.运行脚本
import argparse #导入模块if __name__ == '__main__':#初始化parserparser = argparse.ArgumentParser( description="my math script")# 添加位置/可选参数parser.add_argument('num1', help="Number 1", type=float) parser.add_argument('num2', help="Number 2", type=float)parser.add_argument('operation', help="provide operator", default='+')# 解析参数args = parser.parse_args()print(args)
terminal执行:
$ python argparse_optional_argument.py
输出的便是args的内容,此时我们还没有传入参数
传入参数
$ python argparse_optional_argument.py 30 50 +
5.通过脚本实现计算功能
import argparse #导入模块if __name__ == '__main__':#初始化parserparser = argparse.ArgumentParser( description="my math script")# 添加位置/可选参数parser.add_argument('-n','--num1', help="Number 1", type=float) parser.add_argument('-i','--num2', help="Number 2", type=float)parser.add_argument('-o','--operation', help="provide operator", default='+')# 解析参数args = parser.parse_args()print(args)'''输出:Namespace(num1=None, num2=None, operation='+')'''result = Noneif args.operation == '+':result = args.num1 + args.num2if args.operation == '-':result = args.num1 - args.num2if args.operation == '*':result = args.num1 * args.num2if args.operation == 'pow':result = pow(args.num1, args.num2)print("Result : ", result)
$ python argparse_optional_argument.py --num1 30 --num2 50 --operation +
【注意】如果不加“–”参数的位置就要严格按照添加的顺序,加了“–”,即两根横线下面写法也可以
$ python argparse_optional_argument.py --num1 30 --operation + --num2 50
还有一种缩写形式也可以,就是“-”,即一根横线
python argparse_optional_argument.py -n=84 -i=70 -o=+
输入-h将会显示所有可选参数
python argparse_optional_argument.py -h
Python高阶——argparse(命令行与参数解析)相关推荐
- Py之argparse:Python库之argparse(命令行解析)简介、安装、使用方法之详细攻略
Py之argparse:Python库之argparse(命令行解析)简介.安装.使用方法之详细攻略 导读 python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用a ...
- Python必备基本技能——命令行参数args详解
Python必备基本技能--命令行参数args详解 1. 效果图 2. 源码 2.1 简单命令行参数 2.1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员.工程师和计算机科学家必备的技能--命令行 ...
- python:argparse命令行解析模块详解
argparse命令行解析模块学习 import argparse parser = argparse.ArgumentParser() #类似于初始化吧 parser.parse_args() #解 ...
- [Python] argparse命令行解析器的使用
参考了python文档argparse- 用于命令行选项,参数和子命令的解析器和一篇非常非常优秀的博客python命令行解析模块argpars. 该argparse模块可以轻松编写用户友好的命令行界面 ...
- python getopt使用_Python命令行参数解析模块getopt使用实例
这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...
- python命令行输入参数_Python命令行参数处理
sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 import ...
- shell python -c_python, shell, C/C++ 从命令行获得参数
前言: 在给nagios开发监控插件的时候,不论是用哪种语言写插件,最好能从命令行获得参数(警告值和报警值:-w warning_value -c critical_value),而不是在插件里把这两 ...
- python从命令行获取参数_python从命令行获取参数操作
python从命令行获取参数 一: 简单用法 从命令行获取参数两种方式: 1.通过sys.argv参数获取:代码如下: # -*- coding: utf-8 -*- import sys #获取输入 ...
- Python click包详解,简单易用的命令行传入参数
背景: 运行py脚本需要命令行传入参数 安装: pip install click 使用方法: import clickclass DefaultHelp(click.Command):def __i ...
最新文章
- HTML5系列四(特征检测、Modernizr.js的相关介绍)
- Java 集合框架,看这篇真的够了!
- python notebooks_Jupyter Notebooks安装及入门
- java导出excel float_【Java】导入导出Excel表格
- 样本量很少如何获得最佳的效果?最新小样本学习工具包来啦!
- sysstat linux系统性能分析
- javascript call与apply关键字的作用
- HTTP请求和MIME介绍
- Fragment与Activity
- 一键式文件共享软件Jirafeau
- 华为笔记本linux好不好,华为笔记本怎么样
- 重装系统时,USB接口鼠标和键盘不能使用的解决办法
- GAN介绍 - GAN是如何工作的?
- python爬虫数据寻找过程(解决爬虫异步导致AttributeError: 'NoneType' object has no attribute 'find_all'错误)
- WebRTC 拥塞控制 | Trendline 滤波器
- 个人ip如何运营?如何打造自己的个人ip?具体好处有哪些?
- innerHTML,outerHTML innerHTML
- matlab expand 扩展 用不了,matlab中expand函数 Matlab 里的expand怎么用
- Java手动释放内存
- [大数据]数据可视化 -- 练习卷(上)
热门文章
- 二分法查找是基于有序_【二分查找】May1th “First Bad Version (Python3)”
- java相对应的键盘输入_Java 实现输入键盘上任意键显示出相对应的ASCII
- Intel 加速分布式计算系统的三个神器
- [C/CPP系列知识] C++中extern “C” name mangling -- Name Mangling and extern “C” in C++
- 中国象棋程序的设计与实现(十)--棋盘的定义和绘制
- ES6 中的 Symbol 是什么?
- Android下xml中RelativeLayout布局常见属性
- 服务器san 虚拟化安装系统,在Hyper-V中安装iSCSI SAN服务器(下)
- Android Google Map APIKey申请
- HDOJ 1713 相遇周期 (最大公约数与最小公倍数)