Pythonで一時ファイルを作成・管理する方法!tempfileモジュール初心者向け解説
先生と生徒の会話形式で理解しよう
生徒
「先生、Pythonで作業中だけ使うファイルを作りたいんですけど、どうすればいいですか?」
先生
「そういうときはtempfileモジュールを使うと便利です。作業が終わると自動で削除できる一時ファイルを簡単に作れます。」
生徒
「一時ファイルって、普通のファイルと何が違うんですか?」
先生
「一時ファイルは名前の通り、一時的に使うためだけのファイルです。プログラムが終了したら自動的に消すこともできるので、後片付けの手間が省けます。」
生徒
「なるほど、作り方を教えてください!」
先生
「では順に説明します。」
1. tempfileモジュールとは?
Pythonのtempfileモジュールは、一時ファイルや一時ディレクトリを簡単に作成・管理できる仕組みです。例えば、大量のデータを処理するプログラムで一時的に中間ファイルを作る場合や、テスト用のデータを一時的に保存する場合に便利です。
2. 一時ファイルの作成
最も基本的な方法はtempfile.TemporaryFile()を使うことです。
import tempfile
with tempfile.TemporaryFile(mode='w+t') as temp:
temp.write("一時的なデータを書き込みます\n")
temp.seek(0)
content = temp.read()
print(content)
ポイント:
mode='w+t'でテキストモードの読み書きを指定withを使うとブロックを抜けた時点で自動的にファイルが削除されますseek(0)でファイルの先頭に戻って読み取り可能
3. 一時ファイルに名前を付けたい場合
一時ファイルでも名前を付けたい場合はNamedTemporaryFileを使います。
import tempfile
with tempfile.NamedTemporaryFile(mode='w+t', delete=False) as temp:
temp.write("名前付きの一時ファイルです\n")
print("ファイル名:", temp.name)
ポイント:
delete=Falseにすると、ファイルはプログラム終了後も残ります- ログや中間データの確認が必要な場合に便利です
4. 一時ディレクトリの作成
一時ファイルだけでなく、一時的に使うフォルダを作ることもできます。
import tempfile
import os
with tempfile.TemporaryDirectory() as temp_dir:
print("一時ディレクトリ:", temp_dir)
file_path = os.path.join(temp_dir, "test.txt")
with open(file_path, "w") as f:
f.write("一時ディレクトリ内のファイルです")
ポイント:
- ブロックを抜けるとディレクトリと中のファイルは自動削除されます
- テストや一時的な作業フォルダとして便利です
5. 注意点
- 一時ファイルは自動削除される場合が多いですが、
delete=Falseを使う場合は手動で削除する必要があります - 重要なデータは一時ファイルに保存せず、必ず永続的なファイルに保存してください
- 大量の一時ファイルを作るとディスク容量を消費するので注意しましょう
6. 実用例:一時ファイルでデータ加工
一時ファイルを使って、データの一時保存と読み出しを行う例です。
import tempfile
data = ["りんご", "みかん", "バナナ"]
with tempfile.TemporaryFile(mode='w+t') as temp:
for item in data:
temp.write(item + "\n")
temp.seek(0)
for line in temp:
print("読み出したデータ:", line.strip())