yxixi 发表于 2018-8-9 09:46:20

python 常用的模块 optparse与ConfigParser

#!/usr/bin/env python  
#coding:utf-8
  
#Date: 2015-09-09
  
#Author:king.gp
  
################描述#################
  
#
  
#查找是否设置此kye,有则跳过
  
#如果没有设置此kye,并将操作写入/var/log/redis_add_pause_domain_list.log中
  
#如果恢复指定的存在的key,也要写入到/var/log/redis_retrieve_pause_domain_list.log
  
#
  
####################################
  

  
import redis
  
import datetime
  
import os
  
import sys
  
from optparse import OptionParser
  

  
def Opt ():
  
   parser=OptionParser("Usage: %prog -o option -d domain -s subject")
  
   parser.add_option("-d",
  
                      "--domain",
  
                      dest="domain",
  
                      default=False,
  
                      action="store_true",
  
                      help="special domain_name or domain_name/user",)
  
   parser.add_option("-s",
  
                      "--subject",
  
                      dest="subject",
  
                      default=False,
  
                      action="store_true",
  
                      help="special subject for record operational log",)
  
   parser.add_option("-o",
  
                      "--operation",
  
                      dest="operation",
  
                      default=False,
  
                      action="store_true",
  
                      help="special operation Del or Insert Key ",)
  
   options,args = parser.parse_args()
  
   return options,args,parser
  
   #以上是定义参数与选项,返回对象与参数
  

  
def Connect_Redis(options,hostname,parser,*argv):
  
   r = redis.Redis(host='localhost',port=6379,db='0')
  
   if options.domain:
  
   key_string = hostname+'/Conf/MailBox/'+argv+'/Status_Pause_All'
  
   key_list=r.keys(key_string)
  
   if (options.operation andargv=='search'):
  
       if len(key_list) > 0 :
  
         print key_list+' Existing'
  
       else:
  
         print key_string+' Not Existing'
  
       sys.exit(0)
  

  
   if (options.operation and options.subject and argv=='delete'):
  
      iflen(key_list)>0:
  
         r.delete(key_string)
  
         #print key_string
  
         print key_string+' alrealy Del!'
  
         with open('/var/log/redis_retrieve_pause_domain_list.log','a') as f:
  
             now = datetime.datetime.now()
  
             date_string = now.strftime("%Y-%m-%d %H:%M:%S")
  
             f.write(date_string+'\t'+argv+'\t'+key_string+'\n')
  
         sys.exit(0)
  
      else:
  
         print key_string+' Not Existing'
  
         sys.exit(0)
  
   elif (options.operation and options.subject and argv =='insert'):
  
          r.set(key_string,'1')
  
          print key_string+' alrealy Set!'
  
          with open('/var/log/redis_add_pause_domain_list.log','a') as f:
  
            now = datetime.datetime.now()
  
            date_string = now.strftime("%Y-%m-%d %H:%M:%S")
  
            f.write(date_string+'\t'+argv+'\t'+key_string+'\n')
  
          sys.exit(0)
  
   else:
  
      parser.error("domain or subject not empty")
  

  
   else:
  
      sys.exit(0)
  

  
def Get_Host_Name():
  
host = os.popen('echo $HOSTNAME')
  
hostname = host.read().strip()
  
if len(hostname) > 4:
  
    hostname = hostname.split('.')
  
return hostname
  

  
def main():
  
    options,args,parser=Opt()
  
    if args:
  
      keys=tuple(args)
  
      hostname=Get_Host_Name()
  
      Connect_Redis(options,hostname,parser,*keys)
  
    else :
  
      parser.error("Usage: %prog -o option -d domain -s subject")
  

  
if __name__ == '__main__':
  
    main()
页: [1]
查看完整版本: python 常用的模块 optparse与ConfigParser