Python-argparse模块-获取命令行参数
#!/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模块-获取命令行参数的更多相关文章
- python和shell获取命令行参数的区别
一.命令行参数的取得对于一些功能性的脚本来说非常有用,不至于将功能写死在脚本中. shell的命令行参数直接用 $ 1,$2 等就可以直接获取 其中 $1 表示 第二个参数,即命令行的第一个参数,因为 ...
- python获取命令行参数的方法(汇总)
介绍python获取命令行参数的方法:getopt模和argparse模块. python版本:2.7 一.getopt模块 主要用到了模块中的函数: options, args = getopt.g ...
- 【Python学习 】Python获取命令行参数的方法
背景 最近编写一个python程序的时候,需要去获取python命令行的参数,因此这里记录下如何获取命令行参数的方法. 一.sys 模块 在 Python 中,sys 模块是一个非常常用且十分重要的模 ...
- python获取命令行参数
python获取命令行参数 主要是通过sys的argv列表来获取命令行内容,命令行的参数以空格分隔放到argv列表中. import sys if __name__ == "__main__ ...
- Python argparse 模块
Python argparse 模块 test.py: import argparse argparser = argparse.ArgumentParser(add_help=False) argp ...
- python - argparse 模块学习
python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...
- C程序获取命令行参数
命令行参数 命令行界面中,可执行文件可以在键入命令的同一行中获取参数用于具体的执行命令.无论是Python.Java还是C等等,这些语言都能够获取命令行参数(Command-line argument ...
- 【WPF】如何获取命令行参数
应用程序以 Main 方法为入口点,如果为 Main 方法指定一个 string[] 类型的参数,在程序运行时,这个参数会获取到传递给应用程序的命令行参数. 而 WPF 应用程序比较特殊,因为在VS中 ...
- 从Win32程序中的主函数中获取命令行参数
在标准C或者Win32控制台程序的main函数中,它们都有两个参数:"argc" 和 "argv",如下所示: int main(int argc, char ...
随机推荐
- DNS域传输漏洞利用总结
操作基本的步骤是: 1) 输入nslookup命令进入交互式shell 2) Server 命令参数设定查询将要使用的DNS服务器 3) Ls命令列出某个域中的所有域名 4) Exit命令退出程序 攻 ...
- python脚本:在Ubuntu16系统上基于xtrabackup2.4和mysql5.7实现数据库数据的自动化备份和恢复,亲测有效!
1 安装教程 官网安装教程:https://www.percona.com/doc/percona-xtrabackup/2.4/installation/apt_repo.html -------- ...
- Rocket - diplomacy - Node相关类
https://mp.weixin.qq.com/s/BvK3He3GWon8ywG8Jdmcsg 介绍Node相关的类. 1. BaseNode BaseNode是所有节点类的 ...
- Docker容器同步主机时间
方法一: 查看本地是否有/etc/localtime文件 cat /etc/localtime 如果没有就新建文件 cp /usr/share/zoneinfo/Asia/Shanghai /et ...
- 撸一个简单的vue-router来剖析原理
理解 随着前端业务的发展, 我们一般在写一个较为大型的vue项目时候,会使用到vue-router,来根据指定的url或者hash来进行内容的分发,可以达到不像服务端发送请求,就完成页面内容的切换,能 ...
- MethodHandle(方法句柄)系列之三:invoke和invokeExact的区别
先把代码贴上来,用的是一样的代码 /** * * @author LiuYeFeng<897908343@qq.com> * @date 2015年4月8日 下午10:41:13 * @C ...
- Java实现 LeetCode 676 实现一个魔法字典(暴力)
676. 实现一个魔法字典 实现一个带有buildDict, 以及 search方法的魔法字典. 对于buildDict方法,你将被给定一串不重复的单词来构建一个字典. 对于search方法,你将被给 ...
- Java实现 LeetCode 407 接雨水 II(二)
407. 接雨水 II 给定一个 m x n 的矩阵,其中的值均为正整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水. 说明: m 和 n 都是小于110的整数.每一个单位的高 ...
- Java实现 LeetCode 29 两数相除
29. 两数相除 给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商 ...
- Java实现运动员分组
有N个人参加100米短跑比赛.跑道为8条.程序的任务是按照尽量使每组的人数相差最少的原则分组. 例如: N=8时,分成1组即可. N=9时,分成2组:一组5人,一组4人. N=25时,分4组:7.6. ...