文章目录

  • 1.前言
  • 2.创建脚本
  • 3.导入解析模块
  • 4.初始化、添加参数、解析参数
  • 4.运行脚本
  • 5.通过脚本实现计算功能

1.前言

本节,将讲解如何通过命令行传递参数。具体以代码形式讲解,保您一看就懂!

2.创建脚本

创建一个脚本命名为argparse_optional_argument.py,以便一会儿在terminal运行,注意,不能用Jupyter Notebook,它不能在terminal运行!!

3.导入解析模块

import argparse    #导入模块

4.初始化、添加参数、解析参数

  1. 在argparse模块中调用ArgumentParser()类并实例化。
  2. 给通过add_argument()函数给parser添加要解析的参数,里面的参数需要用户在运行脚本的时候传入,具体怎么传会在下面给出。
  3. 通过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(命令行与参数解析)相关推荐

  1. Py之argparse:Python库之argparse(命令行解析)简介、安装、使用方法之详细攻略

    Py之argparse:Python库之argparse(命令行解析)简介.安装.使用方法之详细攻略 导读 python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用a ...

  2. Python必备基本技能——命令行参数args详解

    Python必备基本技能--命令行参数args详解 1. 效果图 2. 源码 2.1 简单命令行参数 2.1 轮廓检测源代码 参考 这篇博客将介绍一项开发人员.工程师和计算机科学家必备的技能--命令行 ...

  3. python:argparse命令行解析模块详解

    argparse命令行解析模块学习 import argparse parser = argparse.ArgumentParser() #类似于初始化吧 parser.parse_args() #解 ...

  4. [Python] argparse命令行解析器的使用

    参考了python文档argparse- 用于命令行选项,参数和子命令的解析器和一篇非常非常优秀的博客python命令行解析模块argpars. 该argparse模块可以轻松编写用户友好的命令行界面 ...

  5. python getopt使用_Python命令行参数解析模块getopt使用实例

    这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...

  6. python命令行输入参数_Python命令行参数处理

    sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 import ...

  7. shell python -c_python, shell, C/C++ 从命令行获得参数

    前言: 在给nagios开发监控插件的时候,不论是用哪种语言写插件,最好能从命令行获得参数(警告值和报警值:-w warning_value -c critical_value),而不是在插件里把这两 ...

  8. python从命令行获取参数_python从命令行获取参数操作

    python从命令行获取参数 一: 简单用法 从命令行获取参数两种方式: 1.通过sys.argv参数获取:代码如下: # -*- coding: utf-8 -*- import sys #获取输入 ...

  9. Python click包详解,简单易用的命令行传入参数

    背景: 运行py脚本需要命令行传入参数 安装: pip install click 使用方法: import clickclass DefaultHelp(click.Command):def __i ...

最新文章

  1. HTML5系列四(特征检测、Modernizr.js的相关介绍)
  2. Java 集合框架,看这篇真的够了!
  3. python notebooks_Jupyter Notebooks安装及入门
  4. java导出excel float_【Java】导入导出Excel表格
  5. 样本量很少如何获得最佳的效果?最新小样本学习工具包来啦!
  6. sysstat linux系统性能分析
  7. javascript call与apply关键字的作用
  8. HTTP请求和MIME介绍
  9. Fragment与Activity
  10. 一键式文件共享软件Jirafeau
  11. 华为笔记本linux好不好,华为笔记本怎么样
  12. 重装系统时,USB接口鼠标和键盘不能使用的解决办法
  13. GAN介绍 - GAN是如何工作的?
  14. python爬虫数据寻找过程(解决爬虫异步导致AttributeError: 'NoneType' object has no attribute 'find_all'错误)
  15. WebRTC 拥塞控制 | Trendline 滤波器
  16. 个人ip如何运营?如何打造自己的个人ip?具体好处有哪些?
  17. innerHTML,outerHTML innerHTML
  18. matlab expand 扩展 用不了,matlab中expand函数 Matlab 里的expand怎么用
  19. Java手动释放内存
  20. [大数据]数据可视化 -- 练习卷(上)

热门文章

  1. 二分法查找是基于有序_【二分查找】May1th “First Bad Version (Python3)”
  2. java相对应的键盘输入_Java 实现输入键盘上任意键显示出相对应的ASCII
  3. Intel 加速分布式计算系统的三个神器
  4. [C/CPP系列知识] C++中extern “C” name mangling -- Name Mangling and extern “C” in C++
  5. 中国象棋程序的设计与实现(十)--棋盘的定义和绘制
  6. ES6 中的 Symbol 是什么?
  7. Android下xml中RelativeLayout布局常见属性
  8. 服务器san 虚拟化安装系统,在Hyper-V中安装iSCSI SAN服务器(下)
  9. Android Google Map APIKey申请
  10. HDOJ 1713 相遇周期 (最大公约数与最小公倍数)