getopt 模块:命令行选项和参数的函数

来源:互联网 发布:咖喱粉什么牌子好 知乎 编辑:程序博客网 时间:2024/06/05 00:30
[python] view plaincopy
  1. #!/usr/bin/env python  
  2. #-*- coding:utf8 -*-  
  3. import sys  
  4. import getopt  
  5. #函数getopt(args, shortopts, longopts=[])  
  6. """ 
  7. 参数args一般是sys.argv[1:] 
  8. shortopts  短格式 (-)  
  9. longopts 长格式(--)  
  10. 命令行中输入: 
  11. python test.py -i 127.0.0.1 -p 80 test 
  12. python test.py --ip=127.0.0.1 --port=80 test 
  13. "hp:i:" 
  14. 短格式:h后面没有冒号表示后面不带参数,p:和i:后面有冒号表示后面需要参数 
  15. ["help","ip=","port="] 
  16. 长格式:help后面没有等号=,表示后面不带参数,ip和port后面有=,表示后面需要参数 
  17. options 是个包含元祖的列表,格式为[('-i','127.0.0.1'),('-p','80')] 
  18. args 是个列表,包含那些没有'-'或'--'的参数,比如:['test'] 
  19. 注意:定义命令行参数时,要先定义带'-'选项的参数,再定义没有'-'的参数 
  20. """  
  21. def usage():  
  22.     print """ 
  23.     usage: python opt.py [option][value]... 
  24.      
  25.     -h, --help         显示帮助信息 
  26.     -i, --ip=127.0.0.1 ip地址 
  27.     -p, --port=80      端口号   
  28.     """  
  29. if __name__=='__main__':  
  30.     try:  
  31.         options, args = getopt.getopt(sys.argv[1:],"hp:i:",["help","ip=","port="])  
  32.     except getopt.GetoptError:  
  33.         sys.exit()  
  34.     for name,value in options:  
  35.         if name in ("-h","--help"):  
  36.             usage()  
  37.         if name in ("-i","--ip"):  
  38.             print 'ip is',value  
  39.         if name in ("-p","--port"):  
  40.             print 'port is',value  
0 0
原创粉丝点击