カテゴリ: 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
Django
Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方
New2
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New3
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New4
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本