#!/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. data类型的url

      所谓"data"类型的Url格式,是在RFC2397中 提出的,目的对于一些"小"的数据,可以在网页中直接嵌入,而不是从外部文件载入.例如对于img这个Ta ...

  2. ES6-面向对象即类

    简单介绍 在ES6面向对象基本上与java的类实现类似 1 class关键字,构造器和类分开了 1.1 ES5代码如下 <!DOCTYPE html> <html lang=&quo ...

  3. ES6-常用四种数组

    1.map 1.1 个人理解 映射 一个对一个 例如:[45,57,138]与[{name:'blue',level:0},{name:'zhangsan',level:99},{name:'lisi ...

  4. jchdl - RTL实例 - AndAnd

    https://mp.weixin.qq.com/s/JhUB3M1WhjAyUrN1HPIPTA   AndAnd是三输入与门模块,输出为相与的结果.   参考链接 https://github.c ...

  5. 【Hadoop】hdfs的秘密,namenode,datanode,yarn,安全模式,fsimage,edits...

    1.bin/hdfs namenode -format ** 注意事项 1.在配置好了配置文件之后,首次启动之前,做初始化操作 2.在后续启动的时候,不需要再初始化 3.初始化的一些影响 一.初始化操 ...

  6. Java实现 蓝桥杯VIP 基础练习 完美的代价

    package 蓝桥杯VIP; import java.util.Scanner; public class 完美的代价 { public static int sum = 0; public sta ...

  7. Java实现 蓝桥杯VIP 算法训练 乘法表

    问题描述 输出九九乘法表. 输出格式 输出格式见下面的样例.乘号用""表示. 样例输出 下面给出输出的前几行: 11=1 21=2 22=4 31=3 32=6 33=9 41=4 ...

  8. Java实现 蓝桥杯VIP 算法提高 去注释

    算法提高 去注释 时间限制:1.0s 内存限制:256.0MB 去注释 问题 给你一段C++代码,将其中的注释去除后输出剩余的代码. 注释共有两种形式: 1. 行注视:以//开头,一直作用到行尾为止. ...

  9. Java实现 洛谷 P1085 不高兴的津津

    import java.io.*; import java.util.*; class Main{ public static void main(String args[]) { Scanner s ...

  10. Java实现花朵数

    一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数. 例如: 当N=3时,153就满足条件,因为 1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水 ...