使用するモジュール :tempfile
import tempfile でインポートできます。
テンポラリーファイルの作成
一時的にテキストなどを保存して、処理が終わったら自動的に消すか残すか選択できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import tempfile # テンポラリーファイルを作成(IOバッファ) with tempfile.TemporaryFile(mode="w+") as t: # 書き込み → 頭に移動 → 出力 t.write("hello") # mode="w" t.seek(0) # mode="+" print(t.read()) # IOバッファではなくて、実際にテンポラリーファイルを見える形で作る場合 with tempfile.NamedTemporaryFile(delete=False) as t: # テンポラリーファイルが作られた場所を出力する print(t.name) # テンポラリーファイルを開く with open(t.name, mode="w+") as f: # 書き込み→頭に移動→出力 f.write("test\n") f.seek(0) print(f.read()) |
テンポラリーディレクトリの作成
こちらも一時的にディレクトリを作成して、処理が終わったら自動的に消すか残すか選択できます。
1 2 3 4 5 6 7 8 9 |
import tempfile #テンポラリーディレクトリを作成する(終わったら消える) with tempfile.TemporaryDirectory() as td: print(td) #ここはtd.nameではないのことに注意 #テンポラリーディレクトリを作成する(終わっても消えない) temp_dir=tempfile.mkdtemp() print(temp_dir) |
おわりに
いろんなソフトウェアを使うとテンポラリーファイルが溜まっていくと言われてますが、こういうことなんですね。自動的に消えないようにしたときは、しっかり自分でディレクトリとファイルを消すようにしないといけませんね。
消し方はこちら。ファイル操作
import os
os.remove(path)
os.rmdir(path)
ディレクトにファイルが入っていると消せないので、まるごと消す場合はこちら。
import shutil
shutil.rmtree(path)