【Python】ファイルの「.close()」を忘れがちな人にお勧めする「with文」


前回、Pythonで別ファイルを利用したプログラムの書き方を紹介しました。

【Python】ファイルを読み込んだプログラムの作成

2019年12月17日

この別ファイルを利用したプログラムですが、ファイルを開いた後は最後に「close()メソッド」で閉じることが必要となります。
しかし、このclose()メソッドで閉じるのを忘れてしまったり、面倒に思う方もいると思います。

このclose()メソッドはOSによってファイルを開く数に上限があるため、適切にclose()メソッドでファイルと閉じないと処理が止まってしまうなどの不具合が発生します。

このようなことが起こらないように、さらに面倒くさいことを解消するために「with文」を利用しましょう。


「Python」ファイルと閉じる「.close()」が不要な「with文」の使い方

Pythonのファイルを利用したメソッドの書き方は以下となります。

file = open('test.txt')
data = file.read()
file.close()

ここで「with文」を使用することにより、ファイルを使い終わった時点で、自動的にファイルを閉じることが出来ます。

with文の書き方

with open('test.txt') as file:
    data = file.read()
print(data)

実行結果

C:Python>python test.py
test01, 100, 90, 80
test02, 70, 60, 50
test03, 40, 30, 20

with文でファイルを開いた際、open()関数の戻り値は「as」の後に書いた変数に代入されます。
その後、インデントされている範囲内ではファイルが開かれているので、ここで読み込みなどのプログラミング処理を実施します。

ファイルのclose()は、インデントをやめたところで自動的にファイルが閉じられます。

上記のプログラムでは以下のような動作となります。

  • 1行目にファイルを開く
  • 3行目でインデントから抜け、自動的にファイルを閉じる

こちらも結構利用回数が多い使い方なので覚えておくと便利です。


関連記事


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

blank

インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!