python 打開sqlite3內存數據庫,操做完畢將數據保存到文件數據庫

#encoding=utf-8
# 甄碼農代碼 2012 03 06
# 打開sqlite3內存數據庫,執行操做,將內存數據庫保存到文件

import sqlite3
import StringIO

#使用:memory:標識打開的是內存數據庫
con = sqlite3.connect(":memory:")
cur = con.cursor()
#使用executescript能夠執行多個腳本
cur.executescript("""
    create table quotes(
        rid INTEGER PRIMARY KEY AUTOINCREMENT,
        code char(10) NOT NULL,
        high real,
        open real,
        low real,
        close real,
        amount real,
        volume real)""")


#execute執行腳本,參數要放到元組中
cur.execute('insert into quotes(code,high,open,low,close,amount,volume) values(?,?,?,?,?,?,?)',
            ('600036',12.0,11.8,11.7,11.9,999999,8999))

#打印數據表數據
cur.execute("select * from quotes")
print cur.fetchall()

#生成內存數據庫腳本
str_buffer = StringIO.StringIO()
#con.itrdump() dump all sqls 
for line in con.iterdump():
    str_buffer.write('%s\n' % line)

#關閉內存數據庫
cur.close()


#打開文件數據庫
con_file = sqlite3.connect('quotes.db3')
cur_file = con_file.cursor()
#執行內存數據庫腳本
cur_file.executescript(str_buffer.getvalue())
#關閉文件數據庫
cur_file.close()
相關文章
相關標籤/搜索