2014-10-26 39 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