python - 来自 StringIO (Python) 的 SQLite3 连接

标签 python sqlite stringio

我想知道是否有人知道从 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/

相关文章:

python - 避免遍历 Pandas 中的每一行以进行自定义聚合

python - 查找同级元素的文本,其中原始元素与特定字符串匹配

python - 将零列和一列解释为二进制并存储为整数列

visual-studio-2010 - Visual Studio 2010 中的 SQLite DateTime <无法读取数据>

c# - 从 SQLite 数据库 C# WPF 中提取 DateTime 的问题

python - 没有名为 StringIO 的模块

python - 内存 Zip 文件中的 Python 错误

Python列表减法运算

python - 为什么 Twisted 的 adbapi 无法从单元测试中恢复数据?

Python:如何让 StringIO.writelines 接受 unicode 字符串?