Python基础知识-getopt()
来源:互联网 发布:监控员工电脑软件 编辑:程序博客网 时间:2024/06/03 20:21
sys 模块通过 sys.argv 属性提供了对命令行参数的访问。 命令行参数是调用某个程序时除程序名以外的其它参数。这样命名是有历史原因的,在一个基于文本的环境里(比如 UNIX 操作系统的 shell 环境或者 DOS-shell ),这些参数和程序的文件名一同被输入的。但在 IDE 或者 GUI 环境中可能就不会是这样了, 大多 IDE 环境都提供一个用来输入”命令行参数”的窗口;这些参数最后会像命令行上执行那样被传递给程序。
熟悉 C 语言的读者可能会问了, “argc 哪去了?” argc 和 argv 分别代表参数个数(argument count)和参数向量(argument vector)。argv 变量代表一个从命令行上输入的各个参数组成的字符串数组;argc 变量代表输入的参数个数。在 Python 中, argc 其实就是 sys.argv 列表的长度,而该列表的第一项 sys.argv[0] 永远是程序的名称。
在python中 处理命令行参数的模块有两个:
- getopt 模块(简单)
- optparse 模块(更为精细)
1 getopt()
该模块是专门用来处理命令行参数的。
函数原型
getopt(args, shortopts, longopts = [])
说明:
- args, 一般是sys.argv[1:];
- shortopts, 短格式 (-)
- longopts, 长格式(–)
测试代码:
#!/usr/bin/env python # start line# module doc# imported modulesimport sys,getopt# variable definitions# class definition# function definition# main programdef main(): proc_cmd_args()def proc_cmd_args(): try: options,args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="]) except getopt.GetoptError: sys.exit() for name,value in options: if name in ("-h","--help"): usage() if name in ("-i","--ip"): print 'ip is----',value if name in ("-p","--port"): print 'port is----',valueif __name__ == '__main__': main()
测试:
python test.py -i 127.0.0.1 -p 80 55 66python test.py --ip=127.0.0.1 --port=80 55 66
执行效果:
ip is---- 127.0.0.1port is---- 80
或者
ip is---- 127.0.0.1port is---- 80
解释说明:
“hp:i:”
短格式 — h 后面没有冒号:表示后面不带参数,p:和 i:后面有冒号表示后面需要参数[“help”,”ip=”,”port=”]
长格式 — help后面没有等号=,表示后面不带参数,其他三个有=,表示后面需要参数
返回值 options 是个包含元祖的列表,每个元祖是分析出来的格式信息,比如 [(‘-i’,’127.0.0.1’),(‘-p’,’80’)] ;
args 是个列表,包含那些没有‘-’或‘–’的参数,比如:[‘55’,’66’]
注意:定义命令行参数时,要先定义带’-‘选项的参数,再定义没有‘-’的参数
2 关于optparse,请参考这篇文章《[Python]使用optparse快速开发命令行解释程序》
- Python基础知识-getopt()
- python getopt
- python getopt
- python getopt
- python中使用getopt
- python中使用getopt
- python getopt使用
- python 之 getopt
- python的getopt()函数
- python getopt的使用
- Python getopt例子
- python中 getopt 模块
- python getopt使用
- Python optparser 和getopt
- python getopt使用
- [python] getopt模块
- python getopt使用
- python getopt使用
- springMvc向页面传值和读取的方式
- poj 1028 Web Navigation 模拟
- ubuntu 查看目录中所有文件的大小
- SSM的事务的配置和使用
- ubuntu 开发环境配置
- Python基础知识-getopt()
- Linux-网络桥接和链路聚合
- Mqtt精髓系列之保留消息Retained Messages
- 网络桥接
- Python入门 第四天(函数式编程、map、reduce、filter、排序函数、函数返回函数、闭包、匿名函数lambda)
- LINUX系统网络桥接
- 静态对象
- Spark On YARN内存和CPU分配
- HTML5新特性 canvas 画布