python中的MySQL使用 + pickle使用

本文介绍如何使用Python的sqlite3模块进行数据库操作,包括创建表、插入数据及删除数据。同时,演示了如何利用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包对对象进行序列化,方便存储和读取;例子如下:

首先进行序列化:

 

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

 

转载于:https://www.cnblogs.com/zf-blog/p/10756859.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值