python解析获取到的命令行参数/getopt()函数使用

getopt()函数

作用

  • 解析获取到的命令行参数,一般用来解析sys.argv

使用

  • getopt()函数为getopt模块内置函数。需导入getopt模块
  • opts,args = getopt.getopt(args,shortopts,longopts)
  • args是要解析的参数列表。用户命令行参数列表一般为sys.argv[1:]
  • shortopts:单个字符的短参数,若该参数后加,表示该参数是有值的。
  • longopts:多个字符的长参数,若该参数后加=,表示该参数是有值的。
  • 返回值是一个元组由两个列表组成,opts是由分别匹配到的命令行参数和对应值组成的元组构成,args是由没有匹配到的值构成
  • 使用for opt,value in opts 遍历匹配到的命令行参数,用if判断执行相应功能

例1

  1 import sys
  2 import getopt
  3 opts,args = getopt.getopt(sys.argv[1:],"hl:s:",["test=","mh"])
  4 print (opts)
  5 print (args)

运行演示

m@m-virtual-machine:~$ python3 test.py -h
[('-h', '')]
[]
m@m-virtual-machine:~$ python3 test.py -h a
[('-h', '')]
['a']
m@m-virtual-machine:~$ python3 test.py -h -s a
[('-h', ''), ('-s', 'a')]
[]
m@m-virtual-machine:~$ python3 test.py -h -s a -l b
[('-h', ''), ('-s', 'a'), ('-l', 'b')]
[]
m@m-virtual-machine:~$ python3 test.py -h -s a -l b --test=c
[('-h', ''), ('-s', 'a'), ('-l', 'b'), ('--test', 'c')]
[]
m@m-virtual-machine:~$ python3 test.py -h -s a -l b --test=c --mh
[('-h', ''), ('-s', 'a'), ('-l', 'b'), ('--test', 'c'), ('--mh', '')]
[]

例2

  1 import sys
  2 import getopt
  3 opts,args = getopt.getopt(sys.argv[1:],"a:b:",["help"])
  4 print (opts)
  5 print (args)
  6 for opt,value in opts:
  7     if opt == '--help':
  8         print("使用说明:")
  9         print("-a ip -p port")
 10         print("--help 获取使用说明")

运行演示

m@m-virtual-machine:~$ python3 test.py --help
[('--help', '')]
[]
使用说明:
-a ip -p port
--help 获取使用说明
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容