python的getopt库使用

python的getopt库介绍

在使用c或者c++时我们有时会使用命令行将参数(选项)传入,而当程序跑在vs2017系列的IDE上时,可以在设置选项里直接模拟掉通过命令行启动程序,并输入参数(选项)这一行为。有时这是必须且十分有用的,而在python中自然少不了自己的命令行参数(选项)管理库了。目前来说,参数主要有两种输入格式,即含有短选项和长选项两种选项格式。

短选项格式:
短选项格式为“-”加上单个字母选项;

长选项格式:
长选项格式为“–”加上一个单词。

长选项格式主要是在linux下引入的,但是现在许多linux程序是可以同时支持这两种格式的。而在python中通过getopt库实现同时支持这两种用法的单词,而且操作简单,就个人观点而言,在windows下还是喜欢使用短选项格式。

getopt的函数方法

  • getopt.getopt函数
  • getopt.gnu_getopt
    其中getopt.getopt函数是最常用的,其函数原型如下所示:
getopt.getopt(args,shortopts,longopts=[])
  1. args指的是当前脚本接收的参数,是一个列表,可以通过sys.argv获得
  2. shortopts 是短参数,例:python test.py -h 用来输出帮助信息
  3. longopts 是长参数, 例:python test.py -help 用来输出帮助信息

使用例程如下所示:

import getopt
import sys

arg = getopt.getopt(sys.argv[1:], '-h', ['help'])
print(arg)

所获得的输出信息如下

root@Kali:~/python# python3.5 test.py -h
([('-h', '')], [])
root@Kali:~/python# python3.5 test.py --help
([('--help', '')], [])
root@Kali:~/python# 

常见的传入参数时,都会舍弃第一个参数,即从sys.argv[1]开始,这是因为无论是c/c++还是sys.argv
的第一个元素都是当前文件或者脚本的文件名,这是并不是getopt所期望的。

当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":" 号 。
例如下面的代码所示:

    try:
        options, argv = getopt.getopt(sys.argv[1:], "c:b:")
    except getopt.GetoptError:
        sys.exit()

    # 根据命令行的参数内容,调整字典中键值对应的value
    for option, value in options:
        if option in ("-c", "--comname"):
            test_param['com'] = value
            print("com: {0}".format(test_param['com']))

        if option in ("-b", "--baudrate"):
            test_param['baudrate'] = value
            print("baudate : {0}".format(test_param['baudrate']))

option与value:

  1. options为分析出的格式信息。argv 为不属于格式信息的剩余的命令行参数。
  2. option 是一个两元组的列表。每个元素为:( 选项串, 附加参数) 。如果没有附加参数则为空串’’
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值