使用Python';s sqlite3模块,创建内存中的数据库后是否可以将其保存到磁盘?

使用Python';s sqlite3模块,创建内存中的数据库后是否可以将其保存到磁盘?,python,python-2.7,sqlite,Python,Python 2.7,Sqlite,使用命令行工具sqlite3可以保存内存中的数据库,而无需以字符串/脚本形式转储SQL 我希望在不编写太多样板代码的情况下做类似的事情。但是,我并不总是想保存它,这就是为什么我希望在实际需要它之前避免磁盘上的DB 在Python中,除了以字符串形式转储SQL并将其导入到磁盘文件(我知道如何做,并且已经实现了)之外,还有什么方法可以做到这一点吗?似乎没有一个单行的解决方案 可以使用connection对象的iterdump方法备份内存中的sqlite数据库。当然,这只是转储sql文本并导入它的一小

使用命令行工具
sqlite3
可以
保存内存中的数据库,而无需以字符串/脚本形式转储SQL

我希望在不编写太多样板代码的情况下做类似的事情。但是,我并不总是想保存它,这就是为什么我希望在实际需要它之前避免磁盘上的DB


在Python中,除了以字符串形式转储SQL并将其导入到磁盘文件(我知道如何做,并且已经实现了)之外,还有什么方法可以做到这一点吗?

似乎没有一个单行的解决方案

可以使用connection对象的iterdump方法备份内存中的
sqlite数据库。当然,这只是转储sql文本并导入它的一小部分

import sqlite3
# set up a database in memory

c = sqlite3.connect(':memory:')
c.execute('CREATE TABLE my_table (id int, name text);')
c.execute("INSERT INTO my_table VALUES (1, 'bruce'), (2, 'wayne'), (3, 'BATMAN');")
c.commit()

# write database to disk

c2 = sqlite3.connect('mydb.db')
with c2:
  for line in c.iterdump():
    if line not in ('BEGIN;', 'COMMIT;'): # let python handle the transactions
      c2.execute(line)
c2.commit()

你问的问题不是很清楚。你能确切地解释一下你需要做什么吗?sqlite有一个,但它似乎没有在
sqlite3
Python模块中实现。但是,根据,您可以使用其他支持备份API的第三方sqlite模块(例如,本文中提到的)。