Python

【Python】第6章第2回:ファイルの読み込みと書き込み

本記事では、Pythonでファイルの読み込みと書き込みを行う基本的な方法について解説します。これを理解することで、ファイル操作の基礎スキルを習得できます。

0. 記事の概要

この記事を読むメリット

  • ファイル読み込みと書き込みの基礎理解:Pythonを使ったファイル操作を学べます。
  • 応用力の向上:読み込みモードと書き込みモードの使い分けを習得できます。
  • エラー回避のスキルを習得:ファイル操作中に発生しやすいエラーの対処方法を学べます。

この記事で学べること

  • ファイル読み込みの基本操作
  • ファイル書き込みの基本操作
  • with文を活用した安全なファイル操作

1. ファイル読み込みの基本

1.1 読み込みモード

Pythonでファイルを読み込む場合、'r'モードを使用します。このモードは、ファイルを読み込み専用で開きます。

1.2 基本的なコード例

# ファイルの読み込み
with open("example.txt", "r") as file:
    content = file.read()  # ファイルの全内容を読み取る
    print(content)         # 内容を出力する
動作解説
  1. open関数でファイルを開き、読み込みモード('r')を指定しています。
  2. file.read()でファイル全体の内容を文字列として取得します。
  3. with文を使用して、ファイルを自動的に閉じるようにしています。

2. ファイル書き込みの基本

2.1 書き込みモード

Pythonでファイルに書き込む場合、'w'モードを使用します。このモードは、既存の内容を上書きします。

2.2 基本的なコード例

# ファイルへの書き込み
with open("example.txt", "w") as file:
    file.write("こんにちは、Python!")  # ファイルにデータを書き込む
動作解説
  1. open関数でファイルを開き、書き込みモード('w')を指定しています。
  2. file.write()で文字列データをファイルに書き込みます。
  3. 既存の内容は上書きされ、新しいデータが保存されます。

3. ファイル操作時の注意点

3.1 エラー処理

ファイル操作時に起こりうるエラーには以下のようなものがあります。

  • FileNotFoundError: 指定したファイルが存在しない場合に発生。
  • PermissionError: ファイルの書き込み権限がない場合に発生。
  • UnicodeDecodeError: エンコーディングに問題がある場合に発生。

3.2 例外処理のコード例

# エラー処理を含むファイル読み込み
try:
    with open("nonexistent.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("指定されたファイルが見つかりません。")
except PermissionError:
    print("ファイルにアクセスする権限がありません。")

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 新しいテキストファイルを作成し、任意のテキストを3行書き込んでください。
  2. 作成したテキストファイルを読み込み、内容を1行ずつ出力してください。
  3. ファイルが存在しない場合に適切にエラー処理を行うコードを書いてください。

5. 練習問題の解答と解説

問1〜3の解答例

# 問1: テキストファイルの作成と書き込み
with open("test.txt", "w") as file:
    file.write("行1\\n")
    file.write("行2\\n")
    file.write("行3\\n")

# 問2: テキストファイルの読み込み
with open("test.txt", "r") as file:
    for line in file:
        print(line.strip())

# 問3: エラー処理を含む読み込み
try:
    with open("nonexistent.txt", "r") as file:
        print(file.read())
except FileNotFoundError:
    print("ファイルが見つかりません。")

6. まとめ

Pythonにおけるファイルの読み込みと書き込みの基本を学びました。このスキルを活用して、データの保存や読み取りを効率的に行いましょう。