StringIO的SQLite3连接(Python)

时间:2013-11-19 23:10:35

标签: python sqlite stringio

我想知道是否有人知道从StringIO对象生成python中SQLite数据库连接的方法。

我有一个压缩的SQLite3数据库文件,我想使用gzip库解压缩它,然后连接到它而不先创建临时文件。

我查看了slqite3库源代码,但看起来filename一直传递到C代码中。是否有任何其他SQLite3连接库可以使用文件ID?或者是否有一些为什么我可以欺骗内置sqlite3库以为我的StringIO(或其他一些对象类型)是一个实际的文件?

1 个答案:

答案 0 :(得分:4)

Python sqlite3模块无法从文件号打开数据库,即便如此,使用StringIO也不会给你一个文件号(因为它不打开文件,它只是模拟Python file对象)

您可以使用:memory:特殊文件名来避免将文件写入磁盘,然后在完成后将其写入磁盘。这也将确保文件针对大小进行了优化,您可以选择不写入,例如索引,如果大小真的是一个大问题。