• 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包对对象进行序列化,方便存储和读取;例子如下:

    首先进行序列化:

    #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)
  • 相关阅读:
    LeetCode:43. Multiply Strings (Medium)
    LeetCode: 50. Pow(x, n)
    Web服务器、Web容器、Application服务器、反向代理服务器的区别与联系
    LeetCode:49. Group Anagrams(Medium)
    Java:String、StringBuffer、StringBuilder
    Java:泛型
    spring项目中web-inf下不能引用页面资源
    css Hack
    a标签的嵌套
    css中的绝对定位与相对定位
  • 原文地址:https://www.cnblogs.com/zf-blog/p/10756859.html
Copyright © 2020-2023  润新知