1、简介

所有UNIX程序甚至那些具有图形用户界面(Graphical User Interface,GUI)的程序,都能接受和处理命令行选项。对于某些程序,这是与其他程序或用户进行交互的主要手段。具有可靠的复杂命令行参数处理机制,会使得您的应用程序更好、更好用。

Getopt是一个专门设计来减轻命令行处理负担的库函数,主要用来分析命令行参数,不仅python语言中有getopt,C语言中也有getopt。下面主要来介绍python中getopt的使用方法。

2、模块说明

导入模块:import getopt

使用语法:getopt.getopt(args, options[, long_options])

参数说明:options是单字符,long_options表示字符串

返回结果:是一个list,每个list的项为(选项,值)的元组对

具体实例:#ping -c 12 -6 -s 1024 –help –size 1024

处理结果:

getopt.getopt(sys.argv[1:], ”c:s:6”, [“size=”,”help”])

[('-c', '12'), ('-6', ''), ('-s', '1024'), (“—help”,””), (“--size”,”1024”)]

c:表示是一个短选项,前面用’-‘表示,紧随着c之后的元素与c组成一个元组;

6:表示是一个短选项,前面用’-‘表示,与6组成元组的元素是空字符;

help:表示是一个长选项,前面用’--‘表示,与空字符组成一个元组;

size:表示是一个长选项,前面用’--‘表示,与1024组成一个元组;

3、模块使用

options = ["server", "listen=", "server_name=", "include="]

try:

opts,var = getopt.getopt(argvlist[1:], "", options)

for opt,val in opts:

except getopt.GetoptError, err:

“hp:i:”

,p:和 i:

["help","ip=","port="]

息,比如 [('-i','127.0.0.1'),('-p','80')] ;

,比如:['55','66']长选项为"--"加上一个单词

取得命令行参数

在使用之前,首先要取得命令行参数。使用sys模块可以得到命令行参数。

import sys

print sys.argv

然后在命令行下敲入任意的参数,如:

python get.py -o t --help cmd file1 file2

结果为:

['get.py', '-o', 't', '--help', 'cmd', 'file1', 'file2']

可见,所有命令行参数以空格为分隔符,都保存在了sys.argv列表中。其中第1个为脚本的文件名。选项的写法要求

对于短格式,"-"号后面要紧跟一个选项字母。如果还有此选项的附加参数,可以用空格分开,也可以不分开。长度任意,可以用引号。如以下是正确的:

-o

-oa

-obbbb

-o bbbb

-o "a b"

对于长格式,"--"号后面要跟一个单词。如果还有些选项的附加参数,后面要紧跟"=",再加上参数。"="号前后不能有空格。如以下是正确的:

--help=file1

而这些是不正确的:

-- help=file1

--help =file1

--help = file1

--help= file1

如何用getopt进行分析使用getopt模块分析命令行参数大体上分为三个步骤:1.导入getopt, sys模块2.分析命令行参数3.处理结果第一步很简单,只需要:import getopt, sys

第二步处理方法如下(以Python手册上的例子为例):try:

opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "output="])

except getopt.GetoptError:

# print help information and exit:

1.处理所使用的函数叫getopt(),因为是直接使用import导入的getopt模块,所以要加上限定getopt才可以。2.使用sys.argv[1:]过滤掉第一个参数(它是执行脚本的名字,不应算作参数的一部分)。3.使用短格式分析串"ho:"。当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":"号。所以"ho:"就表示"h"是一个开关选项;"o:"则表示后面应该带一个参数。4.使用长格式分析串列表:["help", "output="]。长格式串也可以有开关状态,即后面不跟"="号。如果跟一个等号则表示后面还应有一个参数。这个长格式表示"help"是一个开关选项;"output="则表示后面应该带一个参数。5.调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。

python getopt方法_python的getopt相关推荐

  1. python中getopt函数_Python中getopt()函数的使用

    在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能.目前有短选项和长选项两种格式.短选项格式为"-"加上单个字母选项:长选项为"--"加 ...

  2. python wait方法_Python条件类| 带有示例的wait()方法

    python wait方法 Python Condition.wait()方法 (Python Condition.wait() Method) wait() is an inbuilt method ...

  3. python 计时方法_Python计时器类| cancel()方法与示例

    python 计时方法 Python Timer.cancel()方法 (Python Timer.cancel() Method) cancel() is an inbuilt method of ...

  4. python __repr__方法_Python __repr__()方法起什么作用呢?

    摘要: 下文讲述Python中 __repr__()方法的功能说明,如下所示: __repr__()方法的功能: 用于修改实例化对象的print效果, 如:print(实例化对象) 此时则返回 __r ...

  5. python魔法方法_Python魔法方法指南

    有很多人说学习Python基础之后不知道干什么,不管你是从w3c还是从廖雪峰的教程学习的,这些教程都有一个特点:只能引你快速入门,但是有关于Python的很多基础内容这些教程中都没介绍,而这些你没学习 ...

  6. python魔法方法_python,魔法方法指南

    1.简介 本指南归纳于我的几个月的博客,主题是 魔法方法 . 什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法"的特殊方法. 它们经常是两 ...

  7. python getopt模块_python之getopt模块使用

    实用方向: 处理命令行参数的一个方法,简单好用. 方法: getopt模块总共有2个函数,分别为: getopt.getopt getopt.gnu_getopt 简单使用: getopt这个函数常用 ...

  8. python 正则表达式方法_Python正则表达式一: 基本使用方法

    学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...

  9. python fetchall方法_Python连接MySQL并使用fetchall()方法过滤特殊字符

    来一个简单的例子,看Python如何操作数据库,相比Java的JDBC来说,确实非常简单,省去了很多复杂的重复工作,只关心数据的获取与操作. 准备工作 需要有相应的环境和模块: Ubuntu 14.0 ...

最新文章

  1. Ruby 之 Block, Proc, Lambda 联系--区别,转载
  2. LeetCode实战:设计循环双端队列
  3. c++ opencv 照片清晰度_opencv新手学习————素描视频(C++)
  4. linux命令老是忘记,Linux可能会忘记的命令整理
  5. 宝石光是什么石头_沙漠戈壁的漂亮“石头”让人见了流口水
  6. Mozilla 的 Flash 杀手 'Shumway' 已经现身
  7. VMware虚拟机环境下配置centos的固定IP并用xshell连接
  8. 开发好的项目必须要有好的需求
  9. kasp技术原理_KASP——基因分型研究者指尖跳跃的珠链
  10. UVa 815 Flooded
  11. 异地灾备,利用华为云就可以实现
  12. 排球比赛计分程序功能说明书
  13. 阿里云HaaS100物联网开发板学习笔记(一)硬件资源介绍
  14. C++中pow()函数
  15. android手机通讯录格式转换,手机通讯录小技巧,安卓手机通讯录转iPhone并不难,换机必学...
  16. 通过ssh隧道访问mysql
  17. RFID Kill密码是什么
  18. java随堂练习01,算术运算符的使用。
  19. minidump详细介绍及其windbg的使用
  20. Simple Yet Effective Graph Contrastive Learning for Recommendation

热门文章

  1. Delphi的程序单元结构
  2. 萌新对Python的认识
  3. js 获取当前日期(年月日时分秒周)
  4. 鸿蒙系统荣耀10青春版能用吗,荣耀还能用鸿蒙系统吗?
  5. 企业招聘会直播前要做什么?
  6. 32位机器int变量的最大值和最小值
  7. anaconda之cvxpy安装需要的包包,whl文件下载,本地安装,不会被qiang
  8. 华为emui11系统是鸿蒙系统吗,恭喜华为手机,EMUI11曝光,是披着Android 11的“鸿蒙系统”?...
  9. 声明银行账号类Account,成员变量包括账号,储户姓名,开户时间,身份证号码,存款余额等账号信息,成员方法包括开户,存款,取款,查询(余额,明显),销户等操作。
  10. Dubbo原理和机制详解(非常全面)