2.命令行参数和getopt模块

2019-03-02  本文已影响0人  记事本的记事本

1.目的实现命令行传参
例如 python douyin.py -a 100 -b 200 --c 300 --d
2.使用 例子

import getopt,sys
shortargs = 'f:t' #短选项
longargs = ['directory-prefix=', 'format', 'f_long='] #长选项
opts,args= getopt.getopt( sys.argv[1:], shortargs, longargs)
print('opts=',opts)
print('args=',args)
for k,v in opts:
    if k in('-f',):
        print("我是f")
        print(v)

    if k in('-t',):
        print("我是t")
        print(v)
    if k in ('--format',):
        print("我是fromat",)
        print(v)
    if k in ('--f_long',):
        print("我是long")
        print(v)

3.解释
短选项分两种
不带:的 意思是后方不用加参数,例如t
带:的 后方必须加参数 例如f:
长选项分两种
不带=的:意思是后方不用加参数例如format
带=的:后方必须加参数例如 f_long=

其中短选项在命令行中可以 用 -t -f来使用
长选项的命令行可以使用--format --f_long来传值
python demo1.py -f 1111 -t --f_long="123" --format

结果如下
opts= [('-f', '1111'), ('-t', ''), ('--f_long', '123'), ('--format', '')]
args= []
我是f
1111
我是t

我是long
123
我是fromat

那么args是什么
python demo1.py -f 1111 -t --f_long="123" --format 121 1551

opts= [('-f', '1111'), ('-t', ''), ('--f_long', '123'), ('--format', '')]
args= ['121', '1551']
我是f
1111
我是t

我是long
123
我是fromat

可以看出传入的多余的参数为args这个列表

python demo1.py --format 555

opts= [('--format', '')]
args= ['555']
我是fromat
上一篇 下一篇

猜你喜欢

热点阅读