python 数据库处理
admin
2023-05-12 15:42:09
0
# -*- 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()


相关内容

热门资讯

以军士兵集体丢掉武器抗命,大喊... 据凤凰卫视报道,以色列国防军一军事基地7月30日发生士兵抗命事件,约120名士兵抗议指挥官做法,将武...
蒋成华任商务部副部长 国务院任免国家工作人员。任命蒋成华为商务部副部长。免去蒋成华的商务部国际贸易谈判副代表职务。
伊朗驻华大使:在军事威胁下,不... 新华社北京7月31日电(记者刁慧琳) 伊朗驻华大使法兹里7月28日表示,伊美回到谈判桌的前提是美国必...
伊朗革命卫队在霍尔木兹海峡击中... 当地时间31日,伊朗伊斯兰革命卫队发布声明称,革命卫队海军当天在霍尔木兹海峡击中并扣留了两艘违反禁令...
美媒:特朗普,遇到了一个更强硬... 据《纽约时报》7月29日报道,就在特朗普总统看似放弃战事升级计划几天后,美国再次与伊朗交火。上周末,...
女子做气管镜时不幸身亡,丈夫称... 7月29日,西安刘先生反映妻子在当地医院做支气管镜检查时死亡,看监控时发现医生疑有违规操作。刘先生表...
全网“帮卖西瓜”,然后呢? 近日,河南部分地区西瓜滞销的消息在网上热度很高。很多地方也伸出援手:有景区收购千斤西瓜、免费赠予游客...
美媒:乌克兰袭击伊朗船只,险引... 据《纽约时报》7月28日报道,据伊朗和西方官员称,伊朗曾考虑攻击乌克兰的一个港口,以报复乌克兰对一艘...
20年里,他只画美女,用东方风... 迈进KIM在上海的工作室,迎面是一整墙的美女们。她们像是刚从一场时髦的沙龙里退场,或倚或立,眉宇间是...
Google在港推出AI代理G... 观点网讯:7月29日,Google在香港推出AI代理Gemini Spark,该代理可全天候在后台运...