2014-10-26 59 views
3

在Python中,是否有更多或更少的方法来打开压缩的SQLite数据库,而不必在某处写入临时文件?Python:打开一个压缩的SQLite数据库

喜欢的东西:

import bz2 
import sqlite3 

dbfile = bz2.BZ2File("/path/to/file.bz2", "wb") 
dbconn = sqlite3.connect(dbfile) 

cursor = dbconn.cursor() 
... 

这当然引起了:

ValueError: database parameter must be string or APSW Connection object 

谢谢!

回答

1

底层C库直接使用文件名字符串。因此无法从Python透明地处理它。

code on Github

根据您的操作系统,你也许能够使用的RAM磁盘对文件进行操作。如果你的sqlite文件比这个大,那么可能是时候切换到另一个DB系统了,比如Postgres。

+0

谢谢,[PyFilesystem](http://docs.pyfilesystem.org/)可能能够给我一个跨平台的ramdisk – kynikos 2014-10-27 03:23:33