Python|ファイルの読み込み・書き込み

1. はじめに

Pythonでプログラムを書く上で避けて通れないのが「ファイルの読み込み・書き込み」です。
この処理をマスターすることで、テキストデータの保存やログ記録、データの取得といった実用的なプログラムが作れるようになります。

本記事では、Pythonにおけるファイルの読み込み・書き込み方法を、初心者にもわかりやすく丁寧に解説します。具体的なコード例や実行結果も紹介するので、ぜひ実際に試して理解を深めてください。

 

2. Pythonにおけるファイルの読み書きの基本

2-1. ファイルを開くには「open関数」を使う

Pythonでファイル操作を行うには、open()関数を使用します。この関数では、ファイル名とモードを指定します。よく使うモードは以下のとおりです。

  • 'r':読み込みモード(Read)
  • 'w':書き込みモード(Write)※上書き
  • 'a':追記モード(Append)

2-2. ファイルの読み込み例

以下は、ファイルから中身を読み取る基本的なコードです。

# sample.txtを読み込む
with open("sample.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

実行結果:

Hello, Python!
This is a test file.

with構文を使うことで、自動的にファイルが閉じられ、リソースの無駄遣いを防げます。

2-3. ファイルへの書き込み例

以下は、ファイルに文字列を書き込むコードです。

# sample.txtに書き込み(上書き)
with open("sample.txt", "w", encoding="utf-8") as f:
    f.write("Pythonから書き込みました。\n")

実行結果:

※sample.txtの中身が「Pythonから書き込みました。」に更新される

 

3. よくある使い方・応用例

3-1. ファイルの各行を1行ずつ読み込む

readlines()for文を使えば、ファイルを行ごとに処理できます。

with open("sample.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.strip())  # strip()で改行を除去

実行結果:

Pythonから書き込みました。

3-2. 複数行のテキストを書き込む

複数行のリストをwritelines()でまとめて書き込むことができます。

lines = ["1行目のテキスト\n", "2行目のテキスト\n", "3行目のテキスト\n"]
with open("sample.txt", "w", encoding="utf-8") as f:
    f.writelines(lines)

実行結果:

※sample.txtには以下の内容が書き込まれます:
1行目のテキスト
2行目のテキスト
3行目のテキスト

3-3. ファイルが存在しない場合の安全な読み込み

os.path.exists()を使うと、ファイルが存在するか事前にチェックできます。

import os

if os.path.exists("sample.txt"):
    with open("sample.txt", "r", encoding="utf-8") as f:
        print(f.read())
else:
    print("ファイルが見つかりません。")

実行結果:

ファイルが見つかりません。

 

4. 注意点・エラー対策

4-1. 書き込みモードの注意点

'w'モードは既存ファイルの内容を上書きします。元のデータが必要な場合は事前にバックアップを取るか、'a'モードを使ってください。

4-2. 文字化け対策

日本語を含むファイルを扱う場合は、必ずencoding="utf-8"を指定しましょう。指定しないと、文字化けやエラーの原因になります。

4-3. ファイルが開けない・パーミッションエラー

存在しないファイルを読み込もうとしたり、書き込み権限のない場所に保存しようとすると、FileNotFoundErrorPermissionErrorが発生します。try-exceptで例外処理を追加しておくと安全です。

try:
    with open("sample.txt", "r", encoding="utf-8") as f:
        print(f.read())
except FileNotFoundError:
    print("ファイルが存在しません。")
except PermissionError:
    print("ファイルにアクセスできません。")

 

5. まとめ

今回は、Pythonにおける「ファイルの読み込み・書き込み」について、基本から応用までを具体的なコードとともに解説しました。ファイル操作は実務でも非常に出番が多く、ログ記録・データ保存・外部データの取得などに使われます。

初めのうちはopen()with構文をセットで覚え、読み込み・書き込みモードの違いを意識することがコツです。ぜひ、身近なテキストファイルを使って練習してみてください。

タイトルとURLをコピーしました