# -*- coding:utf-8 -*-
import sys def test():
"""
参数列表:sys.argv
参数个数:len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[2]
"""
print "参数个数为:"+ str(len(sys.argv))
print "参数列表为:"+ str(sys.argv)
print "脚本名为:"+ sys.argv[0]
for i in range(1, len(sys.argv)):
print "第"+str(i)+"个参数:"+sys.argv[i] test()

Q: 如何识别到命令行选项(-u, -p)呢

A: getopt模块,支持短选项模式(-)和长选项模式(-)

1. getopt.getopt 方法:

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

getopt.getopt(args, options[, long_options])

方法参数说明:

  • args: 要解析的命令行参数列表。

  • options: 以字符串的格式定义,options后的冒号(:)表示该选项必须有附加的参数,不带冒号表示该选项不附加参数。

  • long_options: 以列表的格式定义,long_options 后的等号(=)表示如果设置该选项,必须有附加的参数,否则就不附加参数。

  • 该方法返回值由两个元素组成: 第一个是 (option, value) 元组的列表。 第二个是参数列表,包含那些没有’-‘或’–’的参数

2 Exception getopt.GetoptError

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

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

3. 例子:

def getCmdPar(argv):
"""
通过命令行得到脚本传递参数
""" plattype_cmd = ''
version_cmd = '' try:
"""
options, args = getopt.getopt(args, shortopts, longopts=[]) 参数args:一般是sys.argv[1:]。过滤掉sys.argv[0],它是执行脚本的名字,不算做命令行参数。
参数shortopts:短格式分析串。例如:"ht:v:",h后面没有冒号,表示后面不带参数;t和v后面带有冒号,表示后面带参数。
参数longopts:长格式分析串列表。例如:["help", "type=", "version="],help后面没有等号,表示后面不带参数;type和version后面带冒号,表示后面带参数。 返回值options是以元组为元素的列表,每个元组的形式为:(选项串, 附加参数),如:('-i', '192.168.0.1')
返回值args是个列表,其中的元素是那些不含'-'或'--'的参数。
"""
opts, args = getopt.getopt(argv, "ht:v:", ["help", "type=", "version="])
except getopt.GetoptError:
print('Error: installTest.py -t <type> -v <version>')
print(' or: installTest.py --type=<type> --version=<version>')
sys.exit(2) # 处理 返回值options是以元组为元素的列表。
for opt, arg in opts:
if opt in ("-h", "--help"):
print(u'installTest.py -t <type> -p <version>')
print(u'or: installTest.py --type=<type> --version=<version>')
sys.exit()
elif opt in ("-t", "--type"):
plattype_cmd = arg
#plattype.append(re.split('[,]', arg))
elif opt in ("-v", "--version"):
version_cmd = arg
#version.append(re.split('[,]', arg))
return plattype_cmd, version_cmd

Python 处理脚本的命令行参数-getopt的更多相关文章

  1. 如何让python脚本支持命令行参数--getopt和click模块

    一.如何让python脚本支持命令行参数 1.使用click模块 如何使用这个模块,在我前面的博客已经写过了,可参考:https://www.cnblogs.com/Zzbj/p/11309130.h ...

  2. Python 处理脚本的命令行参数(二):使用click

    安装click pip install click 使用步骤 使用@click.command() 装饰一个函数,使之成为命令行接口 使用@click.option() 等装饰函数,为其添加命令行选项 ...

  3. Python 处理脚本的命令行参数(三):使用argparse

    # coding:utf-8 # 测试argparse模块的基本用法 import argparse # 创建参数解析对象,并添加脚本用法帮助 parser = argparse.ArgumentPa ...

  4. powershell脚本,命令行参数传值,并绑定变量的例子

    这是小技巧文章,所以文章不长.但原创唯一,非常重要.我搜了下,还真没有人发 powershell怎样 [命令行 参数 绑定],所以我决定写成博客. 搜索关键字如下: powershell 命令行 参数 ...

  5. python解析传入的命令行参数 argv

    python解析命令行参数主要有三种方法:sys.argv.argparse解析.getopt解析 方法一:sys.argv —— 命令行执行:python test_命令行传参.py 1,2,3 1 ...

  6. Python测试框架pytest命令行参数用法

    在Shell执行pytest -h可以看到pytest的命令行参数有这10大类,共132个 序号 类别 中文名 包含命令行参数数量 1 positional arguments 形参 1 2 gene ...

  7. 命令行参数 getopt模块

    getopt中的函数: getopt.getopt(sys.argv[1:], shortopts, longopts=[]) args指的是当前脚本接收的参数,它是一个列表,可以通过sys.argv ...

  8. Python 的几个命令行参数

    1) 以 $ python 方式启动 python 解释器,之后 import 一个模块,将生成 .pyc 文件. 2) 以 $ python -O 方式启动 python 解释器,之后 import ...

  9. 为python脚本增加命令行参数

    from argparse import ArgumentParser p = ArgumentParser() p.add_argument('-b', '--body', help='Return ...

随机推荐

  1. sgu-203 Hyperhuffman(哈夫曼编码)

    Hyperhuffman You might have heard about Huffman encoding - that is the coding system that minimizes ...

  2. 响应式下的雪碧图解决方案 - 活用background-size / background-position

    一.概述 在传统的居中布局时,我们常用background-position这个属性来进行雪碧图的定位,在减少数据量的同时,保证准确定位.在移动端使用越来越重的现在,以往的传统定位,已经无法达到目的, ...

  3. 【angular5项目积累总结】panel组件

    view code panel.component.css :host { display:flex; min-width:300px } panel.component.html <heade ...

  4. 关于C#的强制转换和尝试转换的方法

    将String[]类型的Object类型,转换为String[]类型: public string ObjectToString(object ob) { string str = string.Em ...

  5. .NET MVC自定义Html辅助方法

    using System;using System.Web.Mvc;using System.Web.Routing; namespace MvcTest2.Helpers{ public stati ...

  6. Web开发 学习积累20161018

    项目 一.项目做的是什么 业务逻辑 -> 增删改查 二.什么是面向对象编程,它有哪些好处 oop:object oriented programming <>核心思想:使用人类思考问 ...

  7. 个人所得税计算java版

    年关将至,该到了发年终奖的时候了.所以就到网上去找下,个税计算器,但是发现做的有点像病毒网站似的.所以计算结果也不太敢信,于是琢磨着,要不自己动手写一个个税计算器吧. 说干就干,先上国家税务局了解了下 ...

  8. Spring_Spring与AOP_AspectJ基于XML的实现

    一.前置通知 import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.as ...

  9. 粗粒度权限控制(拦截是否登录、拦截用户名admin权限)

    RBAC --> 基于角色的权限控制 tb_user tb_role tb_userrole tb_menu(增.删.改.查) tb_rolemenu 1 说明     给出三个页面:index ...

  10. Sprng IOC&AOP&事务梳理 (文章整理new)

    IOC <理解 IOC> <IOC 的理解与解释> 正向控制:传统通过new的方式.反向控制,通过容器注入对象. 作用:用于模块解耦. DI:Dependency Inject ...