- 364 名前:デフォルトの名無しさん mailto:sage [2013/02/18(月) 14:16:20.60 ]
- >まず、shelveのバックエンドが環境に寄って変わるという事ですが、今回のように同じ
>バージョンのPythonでもバックエンドが変わるというのはShelveはどこで利用するバッ >クエンドを決めているのでしょうか? anydbm.openの優先順位に従う 具体的には['dbhash', 'gdbm', 'dbm', 'dumbdbm']の順 >利用するバックエンドはどのように知ることが出来るでしょうか? print type(shelve.open('hogehuga.db').dict) あるいは作成されたDBに対してwhichdbを使用する >また、拡張子が付加される場合があるようですが、こちらも条件としてはどのような条 >件で付加される条件が決まるのでしょうか? >shelveファイルが存在しなければ初期データの投入する処理を指定ファイル名のファイ >ルが存在するかということで行なっていたのですが、今回は拡張子が付加されて常に初 >期データに戻るという問題も起きておりました。 BSD DBの場合サフィックス.dbが付与される docs.python.jp/2.6/library/dbm.html >また、BSD DBは拡張子 .db がついたファイルが一つ作成されます。 >また、ローカルとリモートのDBファイルを見てみると、バックエンドによって形式が違 >うようなのですが、これは互換性が無いと考えてよろしいでしょうか? >この場合ファイルを移動させる際は、pickleでファイルに落とし、リモートでpickleか >らshelveに落とすという手順が必要になるでしょうか? 互換性が無いと考えてよい。考えるべき そもそもshelveでなくdictのpickleで代替できないか考えた方がいいが
|

|