プログラミング

Python超入門⑦ エラー処理とファイル保存を覚えよう

try、except、ValueError、with、openを使い、入力エラーへの対応とテキストファイルの読み書きを学びます。

第7回では、間違った入力で停止しないようにする方法と、結果をファイルへ保存する方法を学びます。

tryとexcept

数字を求めているのに文字が入力されると、intへの変換でエラーが発生します。

try:
    age = int(input("年齢: "))
    print(f"{age}歳です")
except ValueError:
    print("数字を入力してください")

tryの中でエラーが発生すると、対応するexceptへ移動します。

ValueErrorは「値の変換などに失敗した」という種類のエラーです。

入力できるまで繰り返す

while True:
    try:
        score = int(input("点数: "))
        break
    except ValueError:
        print("数字で入力してください")

正しく入力できるとbreakでwhile文を抜けます。

ファイルへ書き込む

with open("memo.txt", "w", encoding="utf-8") as file:
    file.write("Pythonを勉強中です\n")
部分 意味
memo.txt 保存するファイル名
“w” 書き込みモード
encoding=“utf-8” 日本語を扱う文字コード

withを使うと、処理が終わった後にファイルが自動で閉じられます。

**“w”は同名ファイルの内容を上書きします。末尾へ追加したい場合は“a”**を使います。

ファイルを読み込む

with open("memo.txt", "r", encoding="utf-8") as file:
    text = file.read()

print(text)

**“r”**は読み込みモードです。ファイルが存在しない場合はエラーになるため、実際のアプリではFileNotFoundErrorへの対応も必要です。

小さな練習

名前をinputで受け取り、profile.txtへ保存してください。その後、同じファイルを読み込んで表示しましょう。

模範解答

name = input("名前を入力してください: ")

with open("profile.txt", "w", encoding="utf-8") as file:
    file.write(name)

with open("profile.txt", "r", encoding="utf-8") as file:
    saved_name = file.read()

print(f"保存した名前: {saved_name}")

解説

最初のopenは"w"なのでファイルへ書き込み、次のopenは"r"なので読み込みます。withを使うと処理が終わったときにファイルが自動で閉じられます。日本語を安全に扱うため、文字コードをUTF-8に指定しています。

まとめ

  • tryとexceptで、エラーが起きたときの処理を用意できます。
  • withとopenでファイルを安全に開けます。
  • 書き込みモードの“w”は既存内容を上書きします。

前の記事:Python超入門⑥ リストと辞書を使おう

次の記事:Python超入門⑧ クイズゲームを完成させよう

← 記事一覧へ戻る