6.4 標準モジュール tempfile

   

このモジュールは一時ファイルの名前を生成します。これはUnix固有機能では ありませんがUnix以外のシステムでは若干の手助けを必要とします。

注:
このモジュールは一時ファイルを生成するのではなく、現在のプロセスを終了 したりプロセスが死んだときに自動的にそのファイルを削除するのでもありません。

このモジュールは一つのユーザが呼び出せる関数を定義しています。

mktemp ()
ユニークな一時ファイル名を返します。これは関数が呼び出された時点では存在 していないファイルの絶対パス名です。必ず異なる名前を返します。

このモジュールは一時ファイル名をどう作るかを決めるために2つのグローバル変数を 使います。呼び出し側でそれらに値を代入することも出来ます。デフォルトでは mktemp()に対する最初の呼び出しの際に初期化されます。

tempdir
None以外の値が設定されると、この変数がmktemp()で返される ファイル名が置かれるディレクトリを定義します。 デフォルトは環境変数TMPDIRから取られます。この環境変数が設定されて いなければ"/usr/tmp"(Unixでは)またはカレントワーキングディレクトリ (Unix以外のすべてのシステムでは)が使われます。 その値が有効かどうかのチェックは行われません。
 

template
None以外の値が設定されると、この変数がmktemp()で返される ファイル名の最後の構成要素のプリフィックスを定義します。 10進数字の文字列がユニークなファイル名を生成するために付加されます。 デフォルトは"@pid."です。ここでpidは現在のプロセスID (Unixでは)または"tmp"(Unix以外のすべてのシステムでは)です。

警告: Unixプロセスがmktemp()を使い、その後fork()を呼び出して 親と子双方が続けてmktemp()を使用する場合、そのプロセスは衝突する 一時ファイル名を生成します。これを解決するためには、子プロセスは templateNoneを代入し、次のmktemp()呼び出しで デフォルト値を再計算させるようにしなければなりません。

guido@python.org