10

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

我有一个压缩的 SQLite3 数据库文件,我想使用该gzip库对其进行解压缩,然后在不先制作临时文件的情况下连接到它。

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

4

1 回答 1

4

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

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

于 2013-11-19T23:22:42.857 回答