python中的MySQL使用 + pickle使用
1.python中有一个包“sqlite3”,可以用来进行数据库相关的操作;
案例:
import sqlite3
import pickle
img_list = [('a' , 0) , ('b' , 0)]
length = [1 , 2]
content = [img_list , length]
#如果没有Info.db,则新建一个
if not os.path.exists("Info.db"):
conn = sqlite3.connect("Info.db")
c = conn.cursor()
#执行括号中的语句,使用CREATE TABLE创建一个表
c.execute('''CREATE TABLE INFO
(NAME TEXT NOT NULL,
LENGTH INT NOT NULL);''')
conn.commit()
conn.close()
#删除Info.db中已有的数据,初始化操作
conn = sqlite3.connect('info.db')
c = conn.cursor()
c.execute('delete from INFO;')
#将img_list和length写入表中
for i in range(len(img_list)):
a = "insert into INFO values(" + "'" + img_list[i] + "'," + str(length[i]) + ");"
c.execute(a)
conn.commit()
conn.close()
2.关于pickle的使用:
可以使用pickle包对对象进行序列化,方便存储和读取;例子如下:
首先进行序列化:
'''
Python大型免费公开课,适合初学者入门
加QQ群:579817333 获取学习资料及必备软件。
'''
#init local.db
if not os.path.exists(save_data_path + "local.db"):
conn = sqlite3.connect(save_data_path + "local.db")
c = conn.cursor()
c.execute('''CREATE TABLE INFO
(NAME TEXT NOT NULL,
LENGTH INT NOT NULL);''')
conn.commit()
conn.close()
conn = sqlite3.connect(save_data_path + 'local.db')
c = conn.cursor()
c.execute('delete from INFO;')
conn.commit()
conn.close()
db_file = open(save_data_path + 'local.db' , 'wb')
pickle.dump(content , db_file , 1) #序列化操作,1表示以二进制方式进行序列化
读取操作,例子如下:
import pickle
with open('./train_data/0/local.db' , 'rb') as f:
images , length = pickle.load(f)
本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16760831.html