web-dev-qa-db-ja.com

Python 3の特定のファイル拡張子を持つ一時ファイル

パスを取得し、ファイルに既知の拡張子がある場合はファイルをロードしようとし、さらに注意深いチェックを行うコードの単体テストをいくつか作成しています。

単体テストでは、拡張子は正しいが内容が正しくない一時ファイルを作成したいと思います。私の場合は、test.tifを装った空のファイルです。

tempfileモジュールを使用して、拡張子(または名前全体)を指定しながら一時ファイルを作成するにはどうすればよいですか?

NamedTemporaryFileクラス、およびsuffixパラメーターとprefixパラメーターを確認しましたが、それでも拡張子を設定できません。一時ディレクトリに手動でファイルを作成できると思いますが、その後、自分が求めている自己削除機能が失われます。

17
Benjamin

これはうまくいきませんか?

In [2]: tempfile.NamedTemporaryFile(suffix='.tif').name
Out[2]: '/var/folders/gq/swc6jtld5853skyq_xc2lpc40000gn/T/tmplrtwvxg7.tif'
31
Wayne Werner