
with
を好きになろう
さらに優れたオープン、処理、クローズ:
with
なぜ
with
がそれほど人気なのでしょうか。それを説明する前に、
with
を使ったコードを調べ
てみましょう。次のコードは
todos.txt
の現在の内容を読み込んで表示するために(
2
ページ前
で)書いたものです。なお、
print
関数呼び出しを修正して出力時に追加される改行を削除してい
ます。
tasks = open('todos.txt')
for chore in tasks:
print(chore, end='')
tasks.close()
このコードを
with
文を使って書き換えましょう。次の
with
を使った
3
行のコードは、上の
4
行と全く同じ処理を行います。
with open('todos.txt') as tasks:
for chore in tasks:
print(chore, end='')
何か消えたことに気付きましたか?
close
呼び出しの姿がありません。
with
文は、コード
ブロックが終了すると自動的に
close
を呼び出してくれます。
多くのプログラマがファイルの処理が完了したときに
close
の呼び出しを忘れてしまうの
で、これは思ったよりもずっと便利です。ファイルから読み出すだけのときにはそれほど大し
たことではありませんが、ファイルに書き込むときには、
close
の呼び出しを忘れるとデータ
損失やデータ破壊を引き起こす危険性があります。
with
文では
close
呼び出しを忘れても大
丈夫になるので、開いたファイルのデータを使った作業に集中できます。 ...