Site icon imageTomoMemo.dev

Memo on programming. Provided by Tomo with passion.

[Python]例外処理3パターンの実装をしてみる

Icon in a callout block
Python 100Days Challenge Day11

Pythonで例外処理を実装してみる。Pythonでは、try, except, finallyを使う。

例外処理はプログラムが予期しないエラーに対処するための機能。

例外処理の書き方

基本構文は以下の通り。

try:
    # ここにエラーが発生する可能性のあるコードを書く
    pass
except SomeException as e:
    # エラーが発生したときの処理をここに書く
    pass
finally:
    # エラーが発生してもしなくても必ず実行されるコードをここに書く
    pass

ファイル読み込み処理を書いてみる

処理は大きく4つ

  • ファイルを読み込みモードで開く
  • ファイルが見つからない場合の処理(例外処理1)
  • 入出力エラーが発生した場合の処理(例外処理2)
  • 最後に必ず実行される処理

この4つであればファイルの読み込み処理ができそう。

def read_file(file_path):
    try:
        # ファイルを読み込みモードで開く
        with open(file_path, 'r') as file:
        content = file.read()
        print("ファイルが読み込まれました")
        return content
    except FileNotFoundError as e:
        # ファイルが見つからない場合の処理
        print(f"エラー: '{file_path}'内にファイルが見つかりません。")
    except IOError as e:
        # 入出力エラーが発生した場合の処理
        print(f"エラー: 入出力に問題があります。'{file_path}'")
    finally:
        # 最後に必ず実行される処理
        print("ファイルの読み込みを終了しました")
        
# ファイルの情報
file_path = 'sample.txt'
file_content = read_file(file_path)        

'r'について。'r'は、Pythonでファイルを開くときに使用するモード指定の一つ。

ファイル操作をするときは以下のようなモードを指定する。

ファイルを開くときのモード
  • ‘r’ (read):読み込み専用
    • ファイルの中身を見るだけのモード指定。ファイルに書き込みはできない。
    • デフォルトモード
  • ‘w’(write):書き込み専用
    • ファイルに書き込むためのモード。ファイルがない場合は新しく作成する。
    • 元々ファイルがある場合、内容が上書きされる。
  • ‘a’(add):追記
    • ファイルに新しい内容を追加するモード。内容は上書きされない。
  • ‘b’:バイナリ
    • コンピューターが読めるデータ(画像や音楽など)を扱うモード。
      • ‘rb’はバイナリファイルを読み込む
      • ‘wb’はバイナリファイルに書き込む
  • ‘+’:読み書き
    • ファイルを読み書きできるモード
    • ‘r+’は読み書きできるモードでファイルを開く
    • ‘w+’は書き込んだり読んだりできるモードでファイルを開く

Memo on programming by Tomo.

Powered by Tomo with passion.