広告スペース(バナー)
🐍Python レッスン
基本文法の基礎8
データ構造とオブジェクト指向8
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 53 / 69

with文(コンテキストマネージャ)の基本

このレッスンでは、Pythonのwith文(コンテキストマネージャ)の基本を学び、リソースを安全に扱う仕組みを理解することを目標にします。「Python with文 使い方」「Python コンテキストマネージャ」で調べている方向けです。

with open(...) as f:という書き方を使うと、ブロックを抜けるときに自動的にファイルを閉じてくれます。close()を書き忘れる心配がなく、安全にファイルを扱えます。ファイル以外にも、データベース接続やロックの管理など「開始と終了がセットになる処理」全般で使われる、Pythonらしい安全設計の考え方です。

サンプルコードでは、with open("memo.txt", "w") as f:でファイルに書き込み、別のwithブロックで読み込んでいます。それぞれのブロックを抜けた時点で、明示的にclose()を呼ばなくてもファイルが自動的に閉じられている点を確認してみましょう。

初心者がよくつまずくのが、withブロックの外でファイルオブジェクトを使おうとしてエラーになるケースです。withブロックを抜けるとファイルはすでに閉じられているため、ファイルの内容を使いたい処理はブロックの中で完結させる必要があります。

自分でクラスにコンテキストマネージャの機能(__enter____exit__というメソッド)を追加することもでき、より高度な使い方も可能です。データベース接続やロックの管理など、実務でも幅広く応用される重要な仕組みです。

Python
OUTPUT / 実行結果

💡 初回実行時はPythonエンジンの読み込みに数秒かかります。

🎯
ここまでできればゴール達成!
ファイルを安全に開いて、自動で閉じる処理が書けるようになります。
広告スペース(バナー)
広告スペース(記事内)