首页 > 编程语言 > 详细

python学习笔记2

时间:2019-08-02 13:02:33      阅读:67      评论:0      收藏:0      [点我收藏+]

1.getopt模块

通过一段简单代码来学习,代码的作用是获取命令行中的IP和Port。

#!/usr/bin/env python
# -*-coding:utf-8-*-
import  sys
import  getopt
def main():
    ip = ‘‘
    port = ‘‘
    try:
        options, args = getopt.getopt(sys.argv[1:], hi:p:, [ip=,port=])
        print(options)
        # print(args)
    except getopt.GetoptError:
        print(error:test_getopt.py -i/--ip <ip_addr> -p/--port <port_addr>)
        sys.exit(2)
    for name,value in options:
        # print(name)
        if name == -h:
            print(test_getopt.py -i/--ip <ip_addr> -p/--port <port_addr>)
            sys.exit()
        elif name in (-i, --ip):
            print(value:{0}.format(value))
            # print(value)
            ip = value
        elif name in (-p, --port):
            print(value:{0}.format(value))
            # print(value)
            port = value
    print(ip=, ip)
    print(port=, port)
if __name__ == "__main__":
    main()

getopt模块是专门处理命令行参数的模块,用于获取命令行选项和参数,也就是sys.argv。命令行选项使得程序的参数更加灵活。支持短选项模式(-)和长选项模式(--)。

该模块提供了两个方法及一个异常处理来解析命令行参数。

getopt.getopt 方法

getopt.getopt 方法用于解析命令行参数列表,语法格式如下:

getopt.getopt(args, options,[long_options])
args:要解析的命令行参数列表,一般为sys.args[1:],因为sys.args[0]为文件名本身
options:短命令,带":"时将匹配命令行中短命令后紧跟的参数
long_options:长命令,带"="时将匹配命令行中长命令后紧跟的参数

上述代码可使用命令python test_xx.py -i 192.168.0.1 -p 8888或者python test_xx.py --ip=192.168.0.1 --port=8888,这是比较规范的写法。
实际使用时,要注意:1-短命令后紧跟的字符都将被当作时参数内容,因此短命令后不可加":"或"="等多余内容,应紧跟参数,错误写法:python test_xx.py -i:10.1.1.1 -p:9999
          2-长命令写法比较自由,可以写作python test_xx.py --i 10.1.2.3 --p/--po/--por 9999或
python test_xx.py --i:10.1.2.3 --p/--po/--por:9999

Exception getopt.GetoptError

在没有找到参数列表,或选项的需要的参数为空时会触发该异常。

异常的参数是一个字符串,表示错误的原因。属性 msg 和 opt 为相关选项的错误信息。

可以在异常信息中提示命令行的正确用法。

 

python学习笔记2

原文:https://www.cnblogs.com/wk179002/p/11287834.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!