我想知道是否有人知道从StringIO对象生成python中SQLite数据库连接的方法。
我有一个压缩的SQLite3数据库文件,我想使用gzip
库解压缩它,然后连接到它而不先创建临时文件。
我查看了slqite3
库源代码,但看起来filename
一直传递到C代码中。是否有任何其他SQLite3连接库可以使用文件ID?或者是否有一些为什么我可以欺骗内置sqlite3
库以为我的StringIO(或其他一些对象类型)是一个实际的文件?
答案 0 :(得分:4)
Python sqlite3模块无法从文件号打开数据库,即便如此,使用StringIO也不会给你一个文件号(因为它不打开文件,它只是模拟Python file
对象)
您可以使用:memory:
特殊文件名来避免将文件写入磁盘,然后在完成后将其写入磁盘。这也将确保文件针对大小进行了优化,您可以选择不写入,例如索引,如果大小真的是一个大问题。