美文网首页
2.命令行参数和getopt模块

2.命令行参数和getopt模块

作者: 记事本的记事本 | 来源:发表于2019-03-02 13:46 被阅读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

相关文章

网友评论

      本文标题:2.命令行参数和getopt模块

      本文链接:https://www.haomeiwen.com/subject/wckqeftx.html