StringIO的SQLite3连接(Python)

hor*_*nic 8 python sqlite stringio

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

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

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

Kru*_*lur 4

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

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

  • 是的,但是当我使用 sqlite3.connect(':memory:')` 时,它会初始化一个空数据库。 (4认同)