with文でのファイルオープン
with文
Python でファイルを読み書きするときに、 open() と close() を使います。
小さなプログラムであれば終了時にclose() してくれますが、データの規模が大きかったり長時間動作し続けるサービスとしてプログラムするのであれば、明示的にclose() を呼び出す必要があります。これは煩雑なだけでなく、close() を書き忘れてしまったり、処理の途中で例外(詳しくは後述します)が発生したことでclose() が呼び出されずに、メモリ上に無駄なリソースが残るようなことがあります。
code: 0306_open_simple.py
f = open('data.txt')
data = f.readlines()
f.close()
print(data)
この処理は、with文を使うと次のように書くことができます。
code: 0307_open_and_with.py
with open('data.txt') as f:
data = f.readlines()
print(data)
withブロックから出ると、自動的に close() が呼び出されるため、その記述を省略することができます。