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

Pythonでファイルを安全に閉じる方法!with open()を使うメリットを徹底解説

Pythonでファイルを安全に閉じる方法(with open() を使うメリット)
Pythonでファイルを安全に閉じる方法(with open() を使うメリット)

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

生徒

「Pythonでファイルを開いたあと、ちゃんと閉じるって聞いたんですけど、どうすればいいんですか?」

先生

「良い質問ですね。Pythonでは、with open()を使うことでファイルを安全に開いて自動的に閉じることができます。」

生徒

「えっ、自動で閉じてくれるんですか?便利そうですね!」

先生

「そうなんです。では、まず基本の使い方を見ていきましょう。」

1. Pythonのファイル処理とは?

1. Pythonのファイル処理とは?
1. Pythonのファイル処理とは?

Pythonでは、テキストファイルやデータファイルを読み書きする機能が標準で備わっています。たとえば、メモ帳で作った文章を読み込んだり、プログラムの結果をファイルに保存することができます。これを「ファイル処理」といいます。

ファイル処理には主に次の3つのステップがあります。

  • ① ファイルを開く(open()
  • ② ファイルを読み書きする(read()write()
  • ③ ファイルを閉じる(close()

この3つの手順を正しく理解することが、ファイル処理を安全に行うための基本です。

2. ファイルを開いて閉じる基本方法

2. ファイルを開いて閉じる基本方法
2. ファイルを開いて閉じる基本方法

まずはwith open()を使わない方法から見てみましょう。これが昔ながらの書き方です。


file = open("example.txt", "w")
file.write("こんにちは、Pythonの世界!")
file.close()

この方法では、open()でファイルを開き、処理が終わったあとにclose()で閉じる必要があります。もしclose()を忘れてしまうと、ファイルがずっと開かれたままになり、データが正しく保存されなかったり、他のプログラムがファイルにアクセスできなくなるトラブルが起きることもあります。

3. with open()の使い方

3. with open()の使い方
3. with open()の使い方

Pythonでは、このような「閉じ忘れ」を防ぐために、with open()という構文が用意されています。これを使うと、処理が終わったあとに自動でファイルを閉じてくれるのです。


with open("example.txt", "w") as file:
    file.write("こんにちは、Pythonのwith文です!")

このコードでは、withの中にopen()を書き、as fileで変数を指定しています。ブロック(インデントの部分)の中でファイル操作を行い、ブロックを抜けた瞬間にPythonが自動でclose()を呼び出してくれます。

つまり、「自動で閉じる安全なファイルの開き方」がwith open()なのです。

4. with open()のメリットとは?

4. with open()のメリットとは?
4. with open()のメリットとは?

with open()を使うメリットはたくさんあります。初心者がつまずきやすい「ファイルを閉じ忘れる」ミスを防げるのが最大の魅力です。それ以外にも次のような利点があります。

  • ① 自動でファイルを閉じてくれる:プログラムが途中でエラーになっても、ファイルが自動で閉じられます。
  • ② コードが読みやすくなる:ファイルの処理がどこで行われているかが一目で分かります。
  • ③ メモリ管理が安全:不要なファイルハンドル(開かれたままのファイル)が残らないため、パソコンのメモリにも優しいです。

プログラムが大きくなってくると、こうした小さな工夫が大きな違いを生みます。

5. ファイルを読み取る場合の例

5. ファイルを読み取る場合の例
5. ファイルを読み取る場合の例

with open()は読み込みにも使えます。たとえば、保存したテキストを読み取って画面に表示したいときは次のように書きます。


with open("example.txt", "r") as file:
    content = file.read()
    print(content)

こんにちは、Pythonのwith文です!

このように、ファイルモードを「r(読み取り)」に指定することで、ファイルの中身をread()で取り出せます。もちろん、この場合も自動でファイルは閉じられます。

6. 書き込みと追記の違いも覚えよう

6. 書き込みと追記の違いも覚えよう
6. 書き込みと追記の違いも覚えよう

ファイルに書き込むときのモード指定も重要です。open()の第2引数でモードを選べます。

  • "w":書き込みモード。既存の内容を上書きする。
  • "a":追記モード。既存の内容の末尾に追加する。
  • "r":読み取りモード。読み込み専用。

たとえば、日記のように毎回新しい行を追加したいときは"a"モードを使います。


with open("log.txt", "a") as file:
    file.write("今日もPythonを勉強しました。\n")

このようにしておけば、ファイルの内容が消えずに新しい情報を追加できます。

7. with open()を使わないと危険な例

7. with open()を使わないと危険な例
7. with open()を使わないと危険な例

もしwith open()を使わずにファイルを開いたままエラーが発生した場合、ファイルが閉じられないままになります。


file = open("sample.txt", "w")
file.write("テスト中です")
1 / 0  # エラーが発生!
file.close()

このコードでは、途中でエラーが起きたためclose()まで到達せず、ファイルが閉じられません。これが続くと、ファイルが壊れたりアクセスできなくなる危険があります。

しかし、with open()なら安心です。どんなエラーがあっても、ブロックを抜けるときに自動で閉じてくれるからです。

8. 初心者が覚えておくべきポイント

8. 初心者が覚えておくべきポイント
8. 初心者が覚えておくべきポイント

Pythonでファイルを扱うときは、必ずwith open()を使う習慣をつけましょう。これが「安全で正しいファイル処理」の第一歩です。

ファイル処理はプログラム開発の基礎であり、データ保存や設定ファイルの読み込みなど、あらゆる場面で使われます。with open()をマスターしておくと、信頼性の高いプログラムを書くことができます。

カテゴリの一覧へ
新着記事
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で本番運用する方法!初心者でもわかるデプロイ構成の基本