10

StringIO オブジェクトから Python で SQLite データベースへの接続を生成する方法を誰かが知っているかどうか疑問に思っています。

圧縮された SQLite3 データベース ファイルがあり、gzipライブラリを使用して解凍し、最初に一時ファイルを作成せずに接続したいと考えています。

slqite3ライブラリのソースを調べましたfilenameが、C コードにずっと渡されているようです。ファイル ID を使用できる SQLite3 接続ライブラリは他にありますか? または、組み込みsqlite3ライブラリをだまして、StringIO (または他のオブジェクトタイプ) が実際のファイルであると思わせることができる理由はありますか?

4

1 に答える 1

4

Python sqlite3 モジュールはファイル番号からデータベースを開くことができず、それでも StringIO を使用してもファイル番号は得られません (ファイルを開かないため、Pythonfileオブジェクトをエミュレートするだけです)。

特別なファイル名を使用し:memory:て、ファイルをディスクに書き込むことを回避し、後で作業が完了したらディスクに書き込むことができます。これにより、ファイルのサイズが最適化されていることも確認されます。サイズが本当に大きな問題である場合は、インデックスなどを書き込まないことを選択できます。

于 2013-11-19T23:22:42.857 に答える