Python|テキストファイルから文字列を読み込む

1. はじめに

Pythonでプログラミングを行う上で、テキストファイルから文字列を読み込む処理は非常によく使われます。ログファイルの解析、CSVデータの読み込み、設定ファイルの取得など、多くの実務で頻出する場面です。

本記事では、Pythonでテキストファイルから文字列を読み込む基本から応用まで、具体的なコード例とともに丁寧に解説します。初心者〜中級者の方がスムーズに理解できるよう、実行結果と注意点も紹介しています。

 

2. Pythonでテキストファイルを読み込む基本

2-1. open()関数とread()メソッド

Pythonでは、open()関数を使ってファイルを開き、read()メソッドで中身をすべて読み取ることができます。

# sample.txt というファイルから全文を読み込む
with open("sample.txt", "r", encoding="utf-8") as file:
    content = file.read()
    print(content)

実行結果:

Hello, world!
Pythonでファイルを読み込んでいます。

with open(...)構文は、ファイルのクローズを自動的に行ってくれるため、初心者にもおすすめです。encoding="utf-8"を指定することで、文字化けも防げます。

2-2. readlines()で行ごとにリスト取得

ファイルの各行を1行ずつリストとして取得したい場合はreadlines()が便利です。

# ファイルを行単位でリストとして読み込む
with open("sample.txt", "r", encoding="utf-8") as file:
    lines = file.readlines()
    print(lines)

実行結果:

['Hello, world!\n', 'Pythonでファイルを読み込んでいます。\n']

このように、各行が1つの文字列としてリストに格納されます。\n(改行コード)も含まれるため、必要に応じてstrip()などで削除します。

 

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

3-1. 各行を1行ずつ処理する

ログファイルやデータファイルなど、1行ずつ処理したい場合は、ループでfor line in fileと書くのが定番です。

# 各行をループで処理する
with open("sample.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())  # 改行を除去して出力

実行結果:

Hello, world!
Pythonでファイルを読み込んでいます。

strip()を使うことで、改行コードを含まない形で出力できます。データ処理の前処理としても活用されます。

3-2. ファイルの存在確認+読み込み

実務ではファイルが存在するかどうかを確認してから読み込むことがよくあります。以下はその一例です。

import os

file_path = "sample.txt"

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

実行結果:

Hello, world!
Pythonでファイルを読み込んでいます。

os.path.exists()を使うことで、安全にファイルを読み込むことができます。

 

4. 注意点・エラー対策

4-1. ファイルが存在しない場合のエラー

存在しないファイルを開こうとするとFileNotFoundErrorが発生します。try-exceptで処理するのが安全です。

try:
    with open("not_exist.txt", "r", encoding="utf-8") as file:
        print(file.read())
except FileNotFoundError:
    print("指定されたファイルが見つかりません。")

実行結果:

指定されたファイルが見つかりません。

4-2. エンコーディングの違いに注意

Windows環境などで作成されたファイルはshift_jisで保存されていることもあります。文字化けする場合はencoding="shift_jis"を試してみましょう。

with open("japanese.txt", "r", encoding="shift_jis") as file:
    print(file.read())

 

5. まとめ

  • read()でファイル全文を読み込める
  • readlines()forループで行単位の処理も可能
  • with構文で自動的にファイルを閉じるのが基本
  • エンコーディングや存在確認の工夫で実務対応もできる

テキストファイルの読み込みは、データ分析や設定管理など様々な場面で使える基本技術です。慣れておくことで、今後のPython学習や実務にも大きく役立ちます。

次は、「ファイルに書き込む方法」も併せて学ぶと、より実践的なスキルとなります。

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