python ssl模块用法详解_Python中getopt的用法详解

本文详细介绍了Python中getopt模块的使用方法,包括如何处理sys.argv参数,getopt函数的参数设置以及在命令行中的调用方式。同时,文章提及了ssl模块在Python中的应用,帮助读者理解这两个模块在实际编程中的应用。
摘要由CSDN通过智能技术生成

一、使用背景

在谈getopt()函数之前不得不谈 sys.argv[]是怎么承接输入参数的。除了第一项是.py的文件路径外,后面的都以空格为分隔符进行切割,并且保存在了sys.argv列表中。例:

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

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

二、getopt怎么用

① 首先导入关键模块

import sys
import getopt

在使用的时候,由于getopt函数是getopt包里面的一个函数,所以要getopt.getopt(...)这么用

② 熟悉getopt的使用方法

getopt.getopt(args, shortopts, longopts=[])

args:用户输入的参数列表,不包含程序名,故写成sys.argv[1:]

shortopts:短操作参数

【在.py程序中怎么写】:首先这个短操作参数肯定是一个字母;然后它可以写成纯字母(EG:o),也可以写成带一个-的形式(EG:-0);最后,如果你想让这个操作参数可以带一个用户输入参数进来,就得加一个冒号“:”,即o:或者-o:(当然,如果短操作参数决定夹带参数了,那么长操作参数也必须夹带参数)。需要额外指出的是,当有好几个短操作参数时候可以直接写到一起,EG:"abcd"或者"-abcd"或者"-ab-c-d",这个可以随意组合

【在cmd命令行中怎么调用】 python ".py文件绝对路径" -o 传给-o的参数

其中,传给-o的参数的格式为:

1ST:

-o 传给-o的参数(但是只要上面写了冒号要参数,只要输入提了-o 后面必须要有参数,不然报错)

2ND:

-o传给-o的参数(但是只要上面写了冒号要参数,只要输入提了-o 后面必须要有参数,不然报错)

3RD:

-o “传给-o的参数”(但是只要上面写了冒号要参数,只要输入提了-o 后面必须要有参数,不然报错)

注:这时候一定要有-了,即-o

longopts:长操作参数(实际上就是对应着shortpots的,给了一个用户更多的输入选择,后面会说)

【在.py程序中怎么写】:['help','filename=','version']

其中:首先,可以将长操作参数理解为对短操作参数只能写一个字母的弥补,即让程序更加简单易懂,并且输入的时候更友好,比如短操作参数-h可以扩展为-help;其次,长操作参数必须写在[]里,并且放在一对单引号里面,EG:['help'];然后,如果想承接参数(如果短操作参数里面有:了,那么这里也必须承接),后面加一个等号就好,EG:['help='];最后,和短操作参数不同,长操作参数必须用逗号隔开,而且每个都在一对单引号中

【在cmd命令行中怎么调用】 :python ".py文件绝对路径" --长操作参数名称=传给-o的参数

注:给个例子,对于上面的就是 --help=aaa。注意,不能加双引号、等号前后不能有空格

③ 熟悉getopt的的返回值

函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数,即不是按照getopt()里面定义的长或短选项字符和附加参数以外的信息。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数(即短操作参数、长操作参数都没有:或=)则为空串''

EG:

17ae19e52ff11965f668ed07498e707c.png

结果:

64450c0a31989528aa9ae6aeba0d1a44.png

ba5ad7734911f441d992424b0a9c97ce.png

d8ef39b64c83ae2e03ded93ac79061d1.png

注:首先要让程序正确识别,对于比如-h和-v这种不承接参数的,就别在后面硬写,故按照编程时候的思路来写;然后对于;然后,args这个没有约定的多余信息是很灵活的,比如第二次并没有输入全(但是还是,没有承接参数的别瞎写),但是还是把多余信息找出来了;最后,在第三种调用方式中,出现了长操作参数,并且元祖中的第一项也变成了--长操作参数的样子,这也引出了如果想将getopt得到的对应到变量或者做点别的,需要把长操作参数和短操作参数都写上:

550727f4ce9f0bae2dba221463a221d1.png

(这个例子中if后面的操作没有做任何赋值,只是输出了一个东西,然后直接退出程序了sys.exit(),也可以写成如下方式)

c91dccba4b8da0130a5afa5365e06160.png

(注:这里最后有一个else,主要是如果你在if、elif中这if opt_name in ()括号里面的字符串写错了,比如应该是--help你给写成了--helo,防止报错)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值