python参数_Python+getopt实现命令行带参数

python中 getopt 模块,该模块是专门用来处理命令行参数的

函数getopt(args, shortopts, longopts = [])

参数args一般是sys.argv[1:],shortopts 短格式 (-), longopts 长格式(--)

命令行中输入:

# python test.py -i 127.0.0.1 -p 80 55 66

# python test.py --ip=127.0.0.1 --port=80 55 66

1

2

# python test.py -i 127.0.0.1 -p 80 55 66

# python test.py --ip=127.0.0.1 --port=80 55 66

下面的代码:

#!/usr/bin/python

import getopt

import sys

def usage():

print ' -h help \n' \

' -i ip address\n' \

' -p port number\n' \

''

if __name__ == '__main__':

try:

options, args = getopt.getopt(sys.argv[1:], "hp:i:", ['help', "ip=", "port="])

for name, value in options:

if name in ('-h', '--help'):

usage()

elif name in ('-i', '--ip'):

print value

elif name in ('-p', '--port'):

print value

except getopt.GetoptError:

usage()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#!/usr/bin/python

importgetopt

importsys

defusage():

print' -h help \n'\

' -i ip address\n'\

' -p port number\n'\

''

if__name__=='__main__':

try:

options,args=getopt.getopt(sys.argv[1:],"hp:i:",['help',"ip=","port="])

forname,valueinoptions:

ifnamein('-h','--help'):

usage()

elifnamein('-i','--ip'):

printvalue

elifnamein('-p','--port'):

printvalue

exceptgetopt.GetoptError:

usage()

options,args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="])

“hp:i:”短格式

h 后面没有冒号:表示后面不带参数,p:和 i:后面有冒号表示后面需要参数

["help","ip=","port="]长格式

help后面没有等号=,表示后面不带参数,其他三个有=,表示后面需要参数

返回值 options 是个包含元祖的列表,每个元祖是分析出来的格式信息,比如 [('-i','127.0.0.1'),('-p','80')] ;

args 是个列表,包含那些没有‘-’或‘--’的参数,比如:['55','66']

注意:定义命令行参数时,要先定义带'-'选项的参数,再定义没有‘-’的参数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值