見出し画像

ファイル操作するときはwith構文を使う

今日は、『独習Python入門』の第6章での学びをアウトプットします。

ファイルへの書き込み

f = open('test.text', 'w')
f.write('test')
f.close()
1行目のopenという関数は、第1引数にファイル名、第2引数にモードを取ります。(中略)戻り値はファイルのオブジェクトです。

「関数の戻り値として、オブジェクトを変数で受け取り、以降の処理に利用」というパターンが出てきましたね。

ファイルはあけたら必ず閉める!

ファイルは利用したら必ず閉じなければなりません。ファイルを同時に開くことができる数がOSで定められています。ファイルをずっと開きっぱなしにしていると開けるファイルの上限数に達します。その結果、(中略)例外が発生してしまいます。

だから、次に書く、ファイルを開いたら自動的に閉じる構文が便利になってきますね♪

with構文

Pythonにはファイルの読み書きなどに便利なwith構文というものがあります。Open関数を使う場合、今までは自分で明示的にファイルを閉じるというコードを呼び出さないといけません。もし書き忘れてしまった場合は、例外を生み出す温床を作ってしまいます。そのため、ファイルを開いて処理が終わったら自動的に閉じてくれるように書けば、最も安全に利用できることになります。それをサポートするのがwithステートメントを利用したファイルの読み込みです。
try:
   with open('test.txt') as f:
       print(f.read())
except FileNotFoundError as fne:
   print(fne)

なるほど。「as f」と書くことで、open関数の戻り値であるファイルのオブジェクトを、変数fに代入するということなのだな。


サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪