Python 使用 getopt 自定义命令行参数

简介

官方文档
getopt 模块是一个命令行选项解析器。
可以解析自定义选项

使用

# -*- encoding: utf-8 -*-
# CreateTime: 2022/4/14 22:22
# Author: @一碗烈酒
import getopt
import sys

"""
官方文档:https://docs.python.org/zh-cn/3/library/getopt.html?highlight=getopt#module-getopt

解析命令行参数
opts, arguments = getopt.getopt(args=args, shortopts="n:u:h", longopts=["num=", "username="])
getopt.getopt 返回一个元组:
    opts 是一个包含选项和值的元组的列表;
    arguments 是一个包含多个参数的列表。 
getopt.getopt参数:
    args: 一般就是排除第一个执行文件外的所有命令参数 sys.args[1:]
    shortopts: str格式,指定多个短选项。默认选项不能跟参数;选项后面加冒号: 代表必须跟参数;在命令行内使用时 使用 -选项 值
    longopts: list格式,指定多个长选项。默认选项不能跟参数;选项后面加== 代表必须跟参数;在命令行内使用时 使用 --选项 值

解析出参数之后,需要自己写循环来根据opts 执行对一个的操作 或者退出 sys.exit()
"""


def get_args(args):
    # print(args)
    # 没有参数直接返回
    if not len(args):
        return
    try:
        # opts, values = getopt.getopt(args=args, shortopts="n:u:h", longopts=["num=", "username="])
        # opts, values = getopt.getopt(args=args, shortopts="nuh", longopts=["num=", "username="])
        # opts, values = getopt.getopt(args=args, shortopts="n:u:h")
        # opts, values = getopt.getopt(args=args, shortopts="", longopts=["num=", "username=", "help=="])
        opts, arguments = getopt.getopt(args=args, shortopts="", longopts=["num=", "username", "help"])
        print(opts, arguments)
    except getopt.GetoptError as e:
        print(e)
        print("显示帮助信息")
        sys.exit(2)

    for opt, value in opts:
        print(opt, value, "---")
        if opt in ("-n", "--num"):
            print("nnnnn", value)
        elif opt in ("-u", "--username"):
            print("uuuuuu", value)
        else:
            print("帮助信息显示")
            sys.exit()


if __name__ == '__main__':
    get_args(sys.argv[1:])
    pass

使用

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值