python 文件直接写入sql数据库中

 
 
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()

猜你喜欢

转载自blog.csdn.net/qq_33962513/article/details/79830753
今日推荐