我想知道是否有人知道从 StringIO 对象在 python 中生成到 SQLite 数据库的连接的方法。
我有一个压缩的 SQLite3 数据库文件,我想使用 gzip
库解压缩它,然后连接到它而不先创建一个临时文件。
我查看了 slqite3
库源代码,但看起来 filename
一直传递到 C 代码中。是否有任何其他 SQLite3 连接库可以使用文件 ID?或者有什么原因可以让内置的 sqlite3
库认为我的 StringIO(或其他一些对象类型)是一个实际文件?
最佳答案
Python sqlite3 模块无法从文件号打开数据库,即便如此,使用 StringIO 也不会为您提供文件号(因为它不打开文件,它只是模拟 Python 文件
对象)。
您可以使用 :memory:
特殊文件名来避免将文件写入磁盘,然后在完成后将其写入磁盘。这还将确保文件针对大小进行了优化,并且您可以选择不写,例如如果大小确实是一个大问题,则索引。
关于python - 来自 StringIO (Python) 的 SQLite3 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20084135/