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
网友评论