pythonファイルはsqlデータベースに直接書き込まれます

6917 ワード

 
  
import pymysql

class Table:
    #   
    #              
    def __init__(self,mysqlName="zhilian",tableName=""):
        self.tableName=tableName
        #        
        self.db = pymysql.connect("localhost", "root", "", mysqlName, charset="utf8")
        #    cursor()            cursor
        self.cursor = self.db.cursor()
    def setAddField(self,fieldList=[]):
        self.fieldList=fieldList
    #list  mysql table.listToMysql(['username','password'],["asd","as"])
    #  1   list   2 valueList
    def listToMysql(self,valueList=[]):
        try:
            field="";value=""
            for i,j in zip(self.fieldList,valueList):
                field+=i+','
                value+="'"+j+"',"
            sql="INSERT INTO {} ({}) VALUES ({})".format(self.tableName,field[:-1],value[:-1])
            self.cursor.execute(sql)
        except Exception as e:
            print(str(e))

    # csv    mysql             
    def csvToMysql(self,path="",encoding=""):
        import csv
        csv_reader = csv.reader(open(path, encoding))
        for row in csv_reader:
            try:
                self.listToMysql(row)
            except Exception as e:
                print(str(e))
    # xlsx    mysql             
    def xlsxToMysql(self,path=""):
        import xlsx
        for length,dataList in xlsx.readExcel(path):
            try:
                valueList=[]
                for elem in dataList:
                    valueList.append(str(elem.value))
                self.listToMysql(valueList)
            except Exception as e:
                print(str(e))
    #        
    def closeTable(self):
        self.db.close()
    #   
    def commit(self):
        self.db.commit()

# table=Table("zhilian","t_user")#     
# table.setAddField(['username','password'])#    
# table.xlsxToMysql("1.xlsx")#     
# table.commit()#    
# table.closeTable()#     
# #writeToMysql()