カテゴリ: Python 更新日: 2026/02/19

Pythonでファイルを安全に閉じる方法とは?初心者でもわかるwith open()の使い方

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

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

生徒

「Pythonでファイルを使うときって、開いたら閉じるって聞いたんですけど、どうやって閉じるんですか?」

先生

「いい質問ですね。ファイルを扱うときは、open()関数で開いて、使い終わったらclose()で閉じるのが基本です。ただし、もっと安全で便利な方法としてwith open()がありますよ。」

生徒

「へぇー!それってどういうふうに使うんですか?」

先生

「じゃあ、with open()を使うメリットと使い方を、初心者向けにわかりやすく説明していきましょう。」

1. Pythonでファイルを開いて閉じる基本の流れ

1. Pythonでファイルを開いて閉じる基本の流れ
1. Pythonでファイルを開いて閉じる基本の流れ

PythonでテキストファイルやCSVファイルを操作するとき、まず最初に行うのがファイルを「開く(オープン)」という作業です。これは、本棚から本を取り出してページをめくる準備をするようなイメージです。プログラムからファイルの中身を読み取ったり、新しい内容を書き込んだりするためには、この手順が欠かせません。

最も基本的で、古くから使われている方法では、open()関数でファイルを開き、処理が終わった後にclose()メソッドで「閉じる」という一連の流れを記述します。

未経験者でもわかる!基本のコード例


# 1. ファイルを読み込みモード("r")で開く
f = open("sample.txt", "r", encoding="utf-8")

# 2. ファイルの内容を変数に読み込む
data = f.read()

# 3. 読み込んだ内容を画面に表示する
print(data)

# 4. 使い終わったら必ずファイルを閉じる
f.close()

このコードでは、まずopen()を使って「sample.txt」という名前のファイルにアクセスしています。第2引数の"r"は「Read(読み込み)」の頭文字で、第3引数のencoding="utf-8"は文字化けを防ぐための指定です。そして、最後に必ずf.close()を呼び出して、Pythonが掴んでいるファイルの手を離してあげる必要があります。

一見シンプルで分かりやすい手順ですが、実はこの「手動で閉じる」という書き方には、プログラミング初心者が陥りやすい落とし穴や、実務上の注意点が隠されています。

2. open()とclose()の注意点とは?

2. open()とclose()の注意点とは?
2. open()とclose()の注意点とは?

ファイルを開いたまま閉じないと、以下のような問題が起きる可能性があります。

  • 他のプログラムがそのファイルを使えなくなる
  • データが正しく保存されない
  • メモリを無駄に消費してしまう

特に初心者のうちは、close()をうっかり書き忘れたり、エラーが途中で出てしまってclose()が実行されなかったりすることがよくあります。

3. with open()を使えば自動で安全に閉じられる

3. with open()を使えば自動で安全に閉じられる
3. with open()を使えば自動で安全に閉じられる

そこで便利なのがwith open()という書き方です。これは「コンテキストマネージャ」と呼ばれる仕組みで、ファイルの使い終わりに自動でclose()してくれます。

以下のように書きます。


with open("sample.txt", "r") as f:
    data = f.read()

このようにwithブロックの中でファイルを操作すれば、ブロックを抜けた時点で自動的にファイルが閉じられます。

4. with open()のメリットを分かりやすく解説

4. with open()のメリットを分かりやすく解説
4. with open()のメリットを分かりやすく解説

with open()を使うことで得られる大きなメリットは「自動で安全にファイルが閉じられること」です。

これは例えるなら、「水道の蛇口をひねって水を出したあと、自動で蛇口を閉めてくれる仕組み」と同じです。蛇口を閉め忘れると水が出っぱなしになるのと同じように、ファイルも閉め忘れると危険です。

この仕組みがあることで、プログラムの中でエラーが発生しても、ファイルがちゃんと閉じられるので安心です。

5. 実行結果を確認してみよう

5. 実行結果を確認してみよう
5. 実行結果を確認してみよう

例えば、以下のようなファイル読み込みプログラムを実行すると、「sample.txt」に書かれている内容が表示されます。


with open("sample.txt", "r") as f:
    data = f.read()
    print(data)

実行結果の例:


これはサンプルファイルです。
Pythonの勉強を始めましょう。

6. 書き込みにも使えるwith open()

6. 書き込みにも使えるwith open()
6. 書き込みにも使えるwith open()

with open()は読み込みだけでなく、書き込みにも使えます。モードを"w"にすると、新しいファイルを書き込めます。


with open("output.txt", "w") as f:
    f.write("Pythonでファイルに書き込みました。")

このように書くだけで、自動的にoutput.txtが作成され、中に指定した文字列が書き込まれます。

7. ファイルモードの種類も覚えよう

7. ファイルモードの種類も覚えよう
7. ファイルモードの種類も覚えよう

ファイルを開くときには「モード(mode)」を指定する必要があります。主なモードは以下の通りです。

  • "r":読み込み専用(Read)
  • "w":書き込み専用(Write)※内容は上書きされます
  • "a":追加書き込み(Append)※内容は末尾に追加されます
  • "rb""wb":バイナリファイルを扱うとき

初めてのうちは、"r"(読み込み)と"w"(書き込み)を中心に使って練習すると良いでしょう。

8. エラー対策も自動でできるのがポイント

8. エラー対策も自動でできるのがポイント
8. エラー対策も自動でできるのがポイント

プログラムの途中でエラーが出たとき、with open()を使っていないとclose()が実行されないことがあります。

でも、with open()なら、たとえf.read()f.write()の途中でエラーが出ても、ファイルは確実に閉じられます。

これは初心者のうちは特にありがたい仕組みです。安全にファイル処理をしたいなら、with open()を使うことを強くおすすめします。

まとめ

まとめ
まとめ

Pythonにおけるファイル操作とwith open()の重要性を振り返る

この記事では、Pythonでファイルを扱う際に欠かせない基本知識として、ファイルを開く方法、読み込む方法、書き込む方法、そして安全にファイルを閉じる方法について詳しく解説してきました。 Pythonのファイル操作は、テキストファイルの読み書きだけでなく、ログファイルの管理、設定ファイルの読み込み、データ保存など、さまざまな場面で活用されます。 特に初心者の方にとっては、「ファイルを開いたら必ず閉じる」という基本ルールを正しく理解することが、安定したプログラムを書くための第一歩になります。

従来のopen()close()を使った書き方では、処理の途中でエラーが発生した場合にファイルが閉じられないという問題が起こりやすく、知らないうちにファイルを開きっぱなしにしてしまうケースがありました。 その結果、ファイルがロックされたままになったり、データが正しく保存されなかったり、メモリを無駄に消費してしまうといったトラブルにつながることもあります。 こうした問題は、Pythonを学び始めたばかりの生徒がつまずきやすいポイントでもあります。

そこで登場するのがwith open()という書き方です。 with open()は、Pythonに用意されている仕組みを活用した安全なファイル操作方法で、ファイルの利用が終わったタイミングで自動的にclose処理を行ってくれます。 この仕組みによって、ファイルの閉じ忘れを防ぐことができ、プログラムの安全性と可読性を大きく向上させることができます。 初心者だけでなく、実務でPythonを使うエンジニアにとっても、with open()は欠かせない書き方と言えるでしょう。

まとめとしてのサンプルプログラム

ここで、これまで学んだ内容を整理するために、with open()を使ったシンプルなサンプルプログラムを改めて確認してみましょう。 読み込みと書き込みの両方に対応した基本的な例です。


with open("sample.txt", "r") as f:
    data = f.read()
    print(data)

with open("output.txt", "w") as f:
    f.write("with open()を使えば、安全にファイル操作ができます。")

このように、with open()を使えば、ファイルを開いて処理を行い、処理が終わったら自動でファイルが閉じられます。 プログラムの見た目もすっきりし、処理の流れが直感的に理解しやすくなる点も大きなメリットです。 ファイルモードとして「r」「w」「a」などを正しく使い分けることで、読み込み、上書き、追記といった操作も柔軟に行えます。

Pythonでファイル操作を学ぶ際には、「どうやって開くか」だけでなく、「どうやって安全に終わらせるか」まで意識することが大切です。 with open()は、その考え方を自然に身につけるための非常に優れた方法です。 今後、CSVファイルやログファイル、設定ファイルなどを扱うときにも、今回学んだ知識は必ず役に立つでしょう。

先生と生徒の振り返り会話

生徒

「最初はファイルを開いて閉じるだけなのに、なんでこんなに説明が必要なんだろうと思っていましたけど、 with open()を使う理由がよく分かりました。閉じ忘れって意外と怖いんですね。」

先生

「そうですね。小さなプログラムだと気づきにくいですが、規模が大きくなるとファイルの閉じ忘れは大きな問題になります。 だからPythonでは、with open()のような安全な書き方が用意されているんですよ。」

生徒

「エラーが出ても自動でファイルを閉じてくれるというのが、特に安心だと思いました。 初心者のうちはエラーもよく出しますし。」

先生

「その通りです。エラーが起きる前提で書くのが、良いプログラムを書くコツでもあります。 with open()を使えば、ファイル操作に関する心配を減らして、本来の処理に集中できますね。」

生徒

「これからPythonでファイルを扱うときは、必ずwith open()を使うようにします。 読み込みも書き込みも、同じ書き方でできるのも覚えやすいです。」

先生

「それが一番です。今回学んだwith open()の考え方は、Pythonの他の場面でも役立ちます。 安全で読みやすいコードを書く習慣を、これからも大切にしていきましょう。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
Pythonのクロージャー(Closure)とは?関数内関数とnonlocalの活用
New2
Python
Pythonのエラーメッセージの読み方!よくあるエラーと解決方法
New3
Python
Pythonの仮想環境とは?venvを使った環境構築の手順を初心者向けに解説
New4
Python
Pythonのダックタイピングを完全ガイド!初心者でもわかる動的なオブジェクト指向設計
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでエラーメッセージを取得する方法を完全解説!初心者でもわかるExceptionオブジェクト
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
PHP
PHP の MySQL にデータを挿入する方法(INSERT 文の実行)を完全解説!初心者向けガイド
No.4
Java&Spring記事人気No4
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.5
Java&Spring記事人気No5
PHP
PHP の MySQL 接続の基本(mysqli, PDO)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.7
Java&Spring記事人気No7
Python
PythonでSQLiteを使う方法を完全ガイド!初心者でもわかるデータベース基本操作
No.8
Java&Spring記事人気No8
Python
Pythonで空白を削除する方法!strip()・rstrip()・lstrip()の活用