使用getopt解析命令行参数
2016-10-12 15:17
691 查看
python中可以使用getopt来解析命令行参数,其定义如下:
getopt(args, shortopts, longopts=[])
其中,
args是要解析的参数列表
shortopts是短选项字符串(短选项,以-开头的选项,例如-a, -abc)
longopts是长选项列表(长选项,以--开头的选项,例如--x, --xyz)
getopt返回opts, args元组,opts是根据shortopts, longopts参数解析出来的(key, value)列表,
而其他剩余参数就会放到args列表中。
举例最直观:
>>> opts, args = getopt.getopt(['-a', '-b', '--xyz'], 'ab', ['xyz'])
>>> print(opts)
[('-a', ''), ('-b', ''), ('--xyz', '')]
>>> print(args)
[]可以看到,所有解析出来的选项value都是空。
如果要告诉getopt选项有参数值,需要在shortopts, longopts中指定。
>>> opts, args = getopt.getopt(['-a', '111', '-b', '--xyz', '222'], 'a:b', ['xyz='])
>>> print(opts)
[('-a', '111'), ('-b', ''), ('--xyz', '222')]
>>> print(args)
[]通过在短选项字符后添加冒号:,长选项字符串后添加等号=,以告知getopt相应选项后会有参数值。
参数值还可以与选项写在一起。
>>> opts, args = getopt.getopt(['-a111', '-b', '--xyz=222'], 'a:b', ['xyz='])
>>> print(opts)
[('-a', '111'), ('-b', ''), ('--xyz', '222')]
参数列表末尾不以-开头的选项,都会放到args中。
>>> opts, args = getopt.getopt(['-a', '-b', '--xyz', '111', '222'], 'ab', ['xyz'])
>>> print(args)
['111', '222']
注意有参数值和没有参数值的选项设置不要弄错,不然解析出来的结果就会出现错乱。
>>> opts, args = getopt.getopt(['-a', '-b'], 'a:b')
>>> print(opts)
[('-a', '-b')]
>>> opts, args = getopt.getopt(['-a', '-b', '--xyz'], 'ab:')
>>> print(opts)
[('-a', ''), ('-b', '--xyz')]如上,由于指定了a/b选项有参数值,getopt就把-a/-b选项后面的选项当做了参数值。
getopt(args, shortopts, longopts=[])
其中,
args是要解析的参数列表
shortopts是短选项字符串(短选项,以-开头的选项,例如-a, -abc)
longopts是长选项列表(长选项,以--开头的选项,例如--x, --xyz)
getopt返回opts, args元组,opts是根据shortopts, longopts参数解析出来的(key, value)列表,
而其他剩余参数就会放到args列表中。
举例最直观:
>>> opts, args = getopt.getopt(['-a', '-b', '--xyz'], 'ab', ['xyz'])
>>> print(opts)
[('-a', ''), ('-b', ''), ('--xyz', '')]
>>> print(args)
[]可以看到,所有解析出来的选项value都是空。
如果要告诉getopt选项有参数值,需要在shortopts, longopts中指定。
>>> opts, args = getopt.getopt(['-a', '111', '-b', '--xyz', '222'], 'a:b', ['xyz='])
>>> print(opts)
[('-a', '111'), ('-b', ''), ('--xyz', '222')]
>>> print(args)
[]通过在短选项字符后添加冒号:,长选项字符串后添加等号=,以告知getopt相应选项后会有参数值。
参数值还可以与选项写在一起。
>>> opts, args = getopt.getopt(['-a111', '-b', '--xyz=222'], 'a:b', ['xyz='])
>>> print(opts)
[('-a', '111'), ('-b', ''), ('--xyz', '222')]
参数列表末尾不以-开头的选项,都会放到args中。
>>> opts, args = getopt.getopt(['-a', '-b', '--xyz', '111', '222'], 'ab', ['xyz'])
>>> print(args)
['111', '222']
注意有参数值和没有参数值的选项设置不要弄错,不然解析出来的结果就会出现错乱。
>>> opts, args = getopt.getopt(['-a', '-b'], 'a:b')
>>> print(opts)
[('-a', '-b')]
>>> opts, args = getopt.getopt(['-a', '-b', '--xyz'], 'ab:')
>>> print(opts)
[('-a', ''), ('-b', '--xyz')]如上,由于指定了a/b选项有参数值,getopt就把-a/-b选项后面的选项当做了参数值。
相关文章推荐
- Python命令行参数解析模块getopt使用实例
- 使用系统调用getopt简化对命令行参数的解析
- 使用getopt解析命令行参数
- 命令行参数解析: getopt()与getopt_long()
- 命令行参数解析: getopt()与getopt_long()
- linux 中解析命令行参数 (getopt_long用法)
- linux 中解析命令行参数 (getopt_long用法)
- linux 中解析命令行参数(getopt_long用法)
- 使用 args4j 来解析命令行参数
- linux 中解析命令行参数 (getopt_long用法)
- 使用CLI解析Java命令行参数
- linux 中解析命令行参数 (getopt_long用法)
- Python:使用getopt模块处理命令行参数[zt]
- linux 中解析命令行参数 (getopt_long用法)
- linux 中解析命令行参数 (getopt_long用法)
- 命令行参数解析: getopt()与getopt_long()
- 如何在Windows程序中解析命令行参数,win下的getopt
- linux 中解析命令行参数(getopt_long用法)
- linux 中解析命令行参数 (getopt_long用法)
- 命令行参数解析之GetOpt