質問

私は http://code.google.com/p/filecacheでhtap://code.google.com/p/filecacheとのhttp://code.google.com/p/filecacheを使っていくつかの未解決を書いた。/ とpython 2はshelve.open()で指定されたファイル名を正確に保存しますが、Python 3では、3つの異なるファイル "BAK"、 "DAT"、 "DIR"が得られます。テストが起動する前に、私はこれらのファイルを消去したいが、ファイル名または拡張子に関する保証があるかどうかわかりません。

名前が知っていれば棚を消すにはどうすればいいですか?

役に立ちましたか?

解決

どのデータベースバックエンドが使用されるかによって、どの拡張機能が依存します。デフォルトがPython 2とPython 3の間で異なる可能性がありますが、環境内のデータベースインタフェースの間の違いにもなります。

SO NO、特定の実装を使用しない限り、拡張機能を保証しません。つまり、BSDDBShelfまたはDBFileNameshelf。TempFileによって作成された一時ディレクトリにファイルを指定してから、Whileディレクトリを削除することができます。

他のヒント

TempFileとDICT []オブジェクトはモジュールを越えて持続できないため、Shelveを使用します。発見したように、Call()を呼び出すと、disc の永続オブジェクトからコンテンツがクリアされず、出口後のディスクに存在するR + Wファイルが残ります。(使用後の脆弱性と同様)Shelveを削除するには、を使用して削除できます。

import os
import shelve

shelve_name = 'shelve_name'
shelve_contents = shelve.open(shelve_name, flag='c', protocol=None, writeback=False)

shelve_file = (os.path.join(os.getcwd(), shelve_name))
os.remove(shelve_file)
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top