微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python连接mariadb数据库写入数据

1、逻辑

        根据每日生成一个全网设备信息:设备名、厂商、设备型号、IP、版本、存活时间自动生成一个.CSV文件,python通过pyMysqL库连接数据库将设备基础信息csv文件写入数据库(逐条写入)。

import pyMysqL

def main():
	try:
		csv_file_path='/home/zhangli/sw_list.csv'
		file = open(csv_file_path, 'r',encoding='utf-8')
		reader = file.readline()
		b = reader.split(',')
		colum = ''
		for a in b:
    		colum = colum + a + ' varchar(255),'
		colum = colum[:-1]
		#定义table名字
		table_name = 'ETCD'
		#定义要插入的数据
		#ata = "LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LInes TERMINATED BY '\\r\\n' IGnorE 1 LInes" % (csv_filename,table_name)
		#连接数据库
		conn = pyMysqL.connect(host='localhost',port=3306,user='root',passwd='admin123',db='NET',charset='utf8')
		#创建游标对象
		cursor = conn.cursor()
		#定义数据库
		database='NET'
		#创建table
		create_table = 'create table if not exists ' + table_name + ' ' + '(' + colum + ')' + ' DEFAULT CHARSET=utf8'
		#执行
		cursor.execute('drop table %s' % table_name)
		cursor.execute('use %s' % database)
		cursor.execute(create_table)
		#创建sql语句
		for line in file:
			line=line.replace("\n","")
			f_read=line.split(',')
			if f_read[0] == 'sw_name':
        		continue
			else:
				sw_name=f_read[0]
				ip=f_read[1]
				data_info=' values('+"\""+sw_name+"\""','+"\""+ip+"\""')'
				sql = 'insert into '+table_name+data_info
				cursor.execute(sql)
		#提交事务
		conn.commit()
		cursor.close()
		conn.close()
	except Exception as err:
        print(err)

main()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐