0

を使用して Python で一時ディレクトリを作成する方法を知っていますtempfile

ユーザー環境をカプセル化するクラスがあります。また、一時的なダミー ユーザー環境を作成し、テストに使用するいくつかのファイルを設定する単体テストもあります。これが完了したら、すべてをクリーンアップしたいので、ダミーのユーザーディレクトリからすべてを削除します(を使用shutils.rmtree

元のクラスをラップするダミー クラスがあり、実際のユーザー ディレクトリを取得できず、代わりにダミーを返します。誰かがこれを忘れて変更したり、ラッパー クラスを完全に削除したりするのではないかと心配しています。これは機能する可能性があり、開発者は自分のホーム ディレクトリからすべてを失うことになります。これは彼/彼女に良い教訓を教えるかもしれませんが、受け入れられません.

「/tmp/」がユーザー ホームのパスの先頭にあることを確認できるので、安全に削除できることがわかりますが、Windows では機能しません。tempfile はディレクトリの作成方法を既に知っているため、ディレクトリが一時領域にあるかどうかも判断できます。私はそれを行う方法を見つけることができませんが。

何か案は?

4

1 に答える 1

3

これがtempfile.gettempdir()目的です。

ただし、「ホーム ディレクトリ」が一時的なテスト専用セットアップであることを示す方法を再考する必要がある場合があります。余分なファイル (.this-is-a-test-homedirまたは同様のもの) を追加し、明確な「一時的な」ユーザー名を使用できます。

または、ダミーのラッパーを完全に削除し、テストを実行する前に一時的なユーザー ディレクトリをテストで作成し、テストを破棄するときにそれをクリーンアップすることをお勧めします。

于 2012-11-05T13:30:31.410 に答える