Pythonでは、外部のファイルを開くための関数として open()
があります。この際、ファイル操作後の終了処理を省くため、with
文とともに用いることが多いです。
しかし、ファイル操作には例外処理が付きものです。例えば、ユーザーが指定したファイルを読み取りモードでオープンして、その内容を読み込む関数やプログラムを作ったとする。それを使うユーザーが存在しないファイルを指定したとしたら、どうだろう。open
関数にできることは、FileNotFound
例外を発生させることだけです。
def get_content(src):
try:
fsrc = open(src)
except OSError as e:
print(e)
else:
content = fsrc.read()
fsrc.close()
return content
上記のコードは、ファイルを開く際に例外が発生したら、そのことを画面に表示し、例外が発生しなければ、else
節でその内容を読み込んで、その次にファイルをクローズして、最後に読み込んだ内容を呼び出し側に返すようにしています。
また、with
文の場合、途中でエラーが発生した場合にも対応できるといったメリットが挙げられます。ファイルオブジェクトを扱うときに with
キーワードを使うのは良い習慣です。その利点は、処理中に例外が発生しても必ず最後にファイルをちゃんと閉じることです。
with open("file1.txt") as file:
text = "read=" + file.read()
このように、Pythonでのファイル操作と例外処理について理解することは、より堅牢なコードを書くために重要です。