カテゴリ: Python 更新日: 2025/12/20

Pythonで一時ファイルを作成・管理する方法!tempfileモジュール初心者向け解説

Pythonで一時ファイルを作成・管理する方法(tempfileモジュール)
Pythonで一時ファイルを作成・管理する方法(tempfileモジュール)

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonで作業中だけ使うファイルを作りたいんですけど、どうすればいいですか?」

先生

「そういうときはtempfileモジュールを使うと便利です。作業が終わると自動で削除できる一時ファイルを簡単に作れます。」

生徒

「一時ファイルって、普通のファイルと何が違うんですか?」

先生

「一時ファイルは名前の通り、一時的に使うためだけのファイルです。プログラムが終了したら自動的に消すこともできるので、後片付けの手間が省けます。」

生徒

「なるほど、作り方を教えてください!」

先生

「では順に説明します。」

1. tempfileモジュールとは?

1. tempfileモジュールとは?
1. tempfileモジュールとは?

Pythonのtempfileモジュールは、一時ファイルや一時ディレクトリを簡単に作成・管理できる仕組みです。例えば、大量のデータを処理するプログラムで一時的に中間ファイルを作る場合や、テスト用のデータを一時的に保存する場合に便利です。

2. 一時ファイルの作成

2. 一時ファイルの作成
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. 一時ファイルに名前を付けたい場合

3. 一時ファイルに名前を付けたい場合
3. 一時ファイルに名前を付けたい場合

一時ファイルでも名前を付けたい場合はNamedTemporaryFileを使います。


import tempfile

with tempfile.NamedTemporaryFile(mode='w+t', delete=False) as temp:
    temp.write("名前付きの一時ファイルです\n")
    print("ファイル名:", temp.name)

ポイント:

  • delete=Falseにすると、ファイルはプログラム終了後も残ります
  • ログや中間データの確認が必要な場合に便利です

4. 一時ディレクトリの作成

4. 一時ディレクトリの作成
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. 注意点

5. 注意点
5. 注意点
  • 一時ファイルは自動削除される場合が多いですが、delete=Falseを使う場合は手動で削除する必要があります
  • 重要なデータは一時ファイルに保存せず、必ず永続的なファイルに保存してください
  • 大量の一時ファイルを作るとディスク容量を消費するので注意しましょう

6. 実用例:一時ファイルでデータ加工

6. 実用例:一時ファイルでデータ加工
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())
カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説