#!/usr/bin/python3
"""
Author : Jet Bi
License : www.cyeap.com
Summary : 获取命令行的参数
Notes : 在Linux系统上写脚本时,会有给脚本传参的需求,可以通过argparse模块来获取传递的参数的值
""" # 导入argparse模块
import argparse # 1.获取参数解析对象
parser = argparse.ArgumentParser(description="帮助信息前的一些描述信息,可以不写哦") # 2.添加可解析的参数
# add_argument()函数常用参数
# name or flags 选项字符串的名字或列表,例如foo或者 -f, --foo
# nargs 应该读取命令行参数数目,允许的值有
# N(N为数字) 代表必须要有N个参数
# '*' 代表可以有任意个参数
# '?' 代表可以有0或1个参数
# '+' 代表至少要有一个参数
# 如果指定了nargs且值为多个的时候,那么它返回的是一个列表
# default 参数的默认值
# type 命令行参数应该被转换成的类型(默认读取成字符串)
# choices 参数可允许的值的一个容器,即有效的参数
# required 参数是否是必须的
# help 参数的简短描述
# action 值可选 store_true 或 store_false
parser.add_argument("-a", "--app", default=0, type=int, choices=range(1, 10), help="app's code")
parser.add_argument("first_arg", nargs=3) # 位置参数
parser.add_argument("second_arg") # 位置参数
parser.add_argument("-s", "--student", nargs=2, help="sub need two", required=True)
parser.add_argument("-y", action='store_true') # 选项可以不要参数,有-y就为True,没有则为False # 3.解析参数
# parse_args()会返回一个设计的非常简单的namespace对象
# 当调用parse_args()时,可选的参数将以 - 前缀标识,剩余的参数将被假定为位置参数
# 注意: 位置参数是必须的
namespace = parser.parse_args() # 4.从解析出来的namespace对象中获取参数值
# 注意:
# 如果add_argument()中,给予了类似于-a, --app这种参数方式
# 那么在传递的时候可以使用-a 来传递,但解析到namespace对象中的只有app一个属性,即使用namespace.a是识别不出来的
print(namespace)
print(namespace.app)
print(namespace.y)

Python-argparse模块-获取命令行参数的更多相关文章

  1. python和shell获取命令行参数的区别

    一.命令行参数的取得对于一些功能性的脚本来说非常有用,不至于将功能写死在脚本中. shell的命令行参数直接用 $ 1,$2 等就可以直接获取 其中 $1 表示 第二个参数,即命令行的第一个参数,因为 ...

  2. python获取命令行参数的方法(汇总)

    介绍python获取命令行参数的方法:getopt模和argparse模块. python版本:2.7 一.getopt模块 主要用到了模块中的函数: options, args = getopt.g ...

  3. 【Python学习 】Python获取命令行参数的方法

    背景 最近编写一个python程序的时候,需要去获取python命令行的参数,因此这里记录下如何获取命令行参数的方法. 一.sys 模块 在 Python 中,sys 模块是一个非常常用且十分重要的模 ...

  4. python获取命令行参数

    python获取命令行参数 主要是通过sys的argv列表来获取命令行内容,命令行的参数以空格分隔放到argv列表中. import sys if __name__ == "__main__ ...

  5. Python argparse 模块

    Python argparse 模块 test.py: import argparse argparser = argparse.ArgumentParser(add_help=False) argp ...

  6. python - argparse 模块学习

    python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...

  7. C程序获取命令行参数

    命令行参数 命令行界面中,可执行文件可以在键入命令的同一行中获取参数用于具体的执行命令.无论是Python.Java还是C等等,这些语言都能够获取命令行参数(Command-line argument ...

  8. 【WPF】如何获取命令行参数

    应用程序以 Main 方法为入口点,如果为 Main 方法指定一个 string[] 类型的参数,在程序运行时,这个参数会获取到传递给应用程序的命令行参数. 而 WPF 应用程序比较特殊,因为在VS中 ...

  9. 从Win32程序中的主函数中获取命令行参数

    在标准C或者Win32控制台程序的main函数中,它们都有两个参数:"argc" 和 "argv",如下所示: int main(int argc, char ...

随机推荐

  1. # # # Vue的分环境打包

    我们使用Vue-cli的默认环境是只有dev和prod两种环境,在开发中我们的项目一般是开发版.测试版.pre版.Prod版.我们一般是在源码中API地址中修改后然后打包. ###1.首先安装cros ...

  2. idea 开发 webpack项目时,只要已加入SVN 版本控制 一直 updating 问题解决

    场景描述,这是一个困扰我很久的一个问题,一直百度,都解决不了,今天自己通过设置终于解决了,慢慢的都是辛酸泪,赶快写个笔记记录一下. 对于idea 开发 vue-cli+webpack 项目,idea  ...

  3. 01 . Nginx简介及部署

    Nginx简介 Nginx(发音同engine x)是一个异步框架的 Web 服务器,也可以用作反向代理,负载平衡器 和 HTTP 缓存.该软件由 Igor Sysoev 创建,并于2004年首次公开 ...

  4. Java实现LeetCode_0035_SearchInsertPosition

    package javaLeetCode.primary; public class SearchInsertPosition_35 { public static void main(String[ ...

  5. java实现圆周率与级数

    ** 圆周率与级数** 圆周率 我国古代数学家对圆周率方面的研究工作,成绩是突出的.三国时期的刘徽.南北朝时期的祖冲之都在这个领域取得过辉煌战绩. 有了计算机,圆周率的计算变得十分容易了.如今,人们创 ...

  6. spring Cloud负载均衡Ribbon

    Ribbon饥饿加载 默认情况下Ribbon是懒加载的.当服务起动好之后,第一次请求是非常慢的,第二次之后就快很多. 解决方式:开启饥饿加载 ribbon: eager-load: enabled: ...

  7. HashMap解析(主要JDK1.8,附带1.7出现的问题以及区别)

    按问题的形式来吧,这些大多是我自己总结的,如有错误请及时指正谢谢 1.你了解HashMap么,可以说说么? 首先,HashMap是一种数据结构,可以快速的帮我们存取数据.它的底层数据结构在1.7和1. ...

  8. C# 反射详解一

    首先反射是基于System.Reflection命名空间下,.Net框架提供的帮助类库,可以读取并使用metadata(元数据:描述对象信息的数据). 我们再来看下代码生成编译的总过程. 编译器编译( ...

  9. 来看看阿里架构师Java 代码打日志姿势!你也是这样写的吗

    使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一. 实现方式统一使用: Logback框架 打日志的正确方式 什么时候应该打日志 当你遇到问题的时候,只能通过debug功能 ...

  10. HDU - 2639 Bone Collector II 题解

    题目大意 一个人收藏骨头,有 n 个骨头,每个骨头有体积和价值,问能够装在容量为 V 的背包中,能获得的第 k 大(去重后)价值是多少. 样例 样例输入 1 5 10 2 1 2 3 4 5 5 4 ...