4

shelve モジュールを使用して複数のデータベース ファイルを作成する python3 スクリプトがあります参考までに、 shelve モジュールは、 shelve ソース コードに見られるように、 dbmモジュールをラップします。shell.open() メソッドは、ディスク上にデータベース ファイルを作成するために使用され、目的の出力ファイル パスを引数として受け取ります。ただし、作成されるファイルの名前は、ユーザーのシステムで使用可能な dbm モジュールに依存します。これは、SO: hereの他の場所で説明されているように、動作がプラットフォームに依存しないことを意味します。

ファイル名を収集する簡単な方法を見つけることができませんでした。FileIO クラスの name 属性で実行できるように、シェルフ オブジェクトの属性としてファイル名にアクセスできることを期待していました。オブジェクト属性またはメソッドを介してシェルフ オブジェクトのファイル名を取得するにはどうすればよいですか?

それができない場合は、代わりに自己破壊型のtempfileオブジェクトを shelve.open() 呼び出しに渡すことに頼ることができます。しかし、私はそれを達成する方法について明確ではありません。一時的なシェルフの質問がここで SO で行われていることに注意してください...ただし、ユーザーが fname サフィックスを付加する dbm モジュールを持つシステムを使用している場合、提供された回答は機能しません。

お時間をいただきありがとうございます。

4

1 に答える 1

4

この回答を見つけたところ、一時サブディレクトリに保留ファイルを作成してから、ディレクトリ全体を削除することが提案されています。これが現時点で利用可能な最良のソリューションであると思います。

于 2013-09-11T15:51:20.380 に答える