python 数据库处理

发布时间:2019-08-24 09:28:50编辑:auto阅读(1266)

    # -*- coding:utf-8 -*-
    #!/bin/env python
    '''
    #Auth:karl
    #Function: released version
    #Date:2017/6/27
    #Version:V1.0
    '''
    import  sys,re,time,datetime
    import  paramiko
    import logging
    import ConfigParser
    import traceback
    import MySQLdb
    import platform
    import xlrd
    reload(sys)
    sys.setdefaultencoding('utf-8')
    if "Linux" == platform.system():
        Excelpath="/home/appdeploy/version/Version"
    else:
        Excelpath = "D:\\auto\\release\Version"
    class Mysql_connect(object):
        def __init__(self,*agre):
            self.port=agre[0]
            self.passwd=agre[1]
            self.username=agre[2]
            self.host=agre[3]
            self.version=agre[4]
        def File_get(self):
    	Excelfilepath="{path}_{version}/Filelist.xlsx".format(path=Excelpath,version=self.version)
            workbook=xlrd.open_workbook(Excelfilepath)
            booksheet = workbook.sheet_by_name('Sheet1')
            self.p=list()
            for row in range(booksheet.nrows):
                row_data = []
                for col in range(booksheet.ncols):
                    cel = booksheet.cell(row, col)
                    val = cel.value
                    try:
                        val = cel.value
                        val = re.sub(r'\s+', '', val)
                    except:
                        pass
                    if type(val) == float:
                        val = int(val)
                    else:
                        val = str(val)
                    row_data.append(val)
                self.p.append(row_data)
            self.__Mysql_deal()
        def __Mysql_deal(self):
            try:
                con = MySQLdb.connect(user=self.username,passwd=self.passwd,db="version_release",port=int(self.port),charset="utf8")
                dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
                cursor=con.cursor()
                cursor.execute("CREATE TABLE IF NOT EXISTS version(Id INT PRIMARY  KEY  AUTO_INCREMENT,\
                                File VARCHAR (30) DEFAULT  null,Release_date TIMESTAMP,Instruction text)")
                sql="""INSERT INTO version (File,Release_date,Instruction) VALUES (%s, %s, %s) """
                for value in self.p:
                    valuse=(value[0],dt,value[1])
                    result=cursor.execute(sql,valuse)
                cursor.close()
                con.commit()
                con.close()
            except MySQLdb.Error, e:
                print "Error %d: %s" % (e.args[0], e.args[1])
                sys.exit(1)
        def File_deal(self):
            try:
                ssh = paramiko.SSHClient()
                ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
                ssh.connect(self.host,22, "root","****", timeout=5)
                for name in self.p:
                    route_0=name[0]
                    route=name[1]
                    cmd="\cp -vr {path}_{version}/{filename}.xls  {dir_new}".format(path=Excelpath,version=self.version,filename=route_0,dir_new=route)
                    stdin, stdout, stderr = ssh.exec_command(cmd)
                    for out_msg in stdout.readlines():
                        print out_msg
            except Exception, e:
                print '%s\tError\n' % (self.host) ,e
            ssh.close()
    def main():
        agre = ["3306", "*****", "root","xx.xx.xx.xx","3.0"]
        stg = Mysql_connect(*agre)
        stg.File_get()
        stg.File_deal()
    if __name__ == '__main__':
        try:
          main()
        except Exception as e:
            print traceback.format_exc()


关键字