python冒号什么意思getopt_Python基础知识-getopt()

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 modules

import sys,getopt

# variable definitions

# class definition

# function definition

# main program

def 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----',value

if __name__ == '__main__':

main()

测试:

python test.py -i 127.0.0.1 -p 80 55 66

python test.py --ip=127.0.0.1 --port=80 55 66

执行效果:

ip is---- 127.0.0.1

port is---- 80

或者

ip is---- 127.0.0.1

port is---- 80

解释说明:

“hp:i:”

短格式 — h 后面没有冒号:表示后面不带参数,p:和 i:后面有冒号表示后面需要参数

[“help”,”ip=”,”port=”]

长格式 — help后面没有等号=,表示后面不带参数,其他三个有=,表示后面需要参数

返回值 options 是个包含元祖的列表,每个元祖是分析出来的格式信息,比如 [(‘-i’,’127.0.0.1’),(‘-p’,’80’)] ;

args 是个列表,包含那些没有‘-’或‘–’的参数,比如:[‘55’,’66’]

注意:定义命令行参数时,要先定义带’-‘选项的参数,再定义没有‘-’的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值