カテゴリ: Python 更新日: 2026/04/26

Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())

Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())

先生と生徒の会話形式で理解しよう

生徒

「Pythonでテキストファイルを読み込むときに、一行ずつ処理する方法ってありますか?」

先生

「はい、Pythonにはreadline()readlines()という便利なメソッドがあります。これを使えば一行ごとの処理ができますよ。」

生徒

「全部まとめて読み込むのとは何が違うんですか?」

先生

「全部読み込むとメモリを多く使いますが、一行ずつなら大きなファイルでも安全に処理できます。では詳しく見ていきましょう。」

1. readline() とは?

1. readline() とは?
1. readline() とは?

readline()は、テキストファイルから1行だけを読み込むための基本的なメソッドです。呼び出すたびに次の行が順番に取得されるしくみなので、大きなファイルでも少しずつ処理できるのが大きな特徴です。また、読み込んだ行には改行文字\nが含まれるため、画面にきれいに表示したい場合はstrip()を使って取り除くことがよくあります。

まずは、実際に1行ずつ読み進める簡単な例を見てみましょう。初心者でも動きを理解しやすいサンプルです。


with open("sample.txt", "r", encoding="utf-8") as f:
    line = f.readline()     # 最初の1行を読み込む
    while line:             # 行がある間はループ
        print(line.strip()) # 行末の改行を削除して表示
        line = f.readline() # 次の行を読み込む

1行目のテキスト
2行目のテキスト
3行目のテキスト

この方法では、ファイルの行を順番に読みながら処理できるため、ログのような行数が多いファイルでも安全に扱えます。「少しずつ確実に読み進めたい」ときに、readline()はとても役立つ基本の読み込み方法です。

2. readlines() とは?

2. readlines() とは?
2. readlines() とは?

readlines()は、テキストファイルの中身をすべてまとめて読み込み、その結果を「1行ずつの文字列を要素に持つリスト」として返すメソッドです。短いファイルなら、一度に読み込んで全体を一覧として扱えるため、とても扱いやすい方法です。

例えば、テキストの内容をまず全部取り込み、そのあとで1行ずつ処理したい場合に便利です。リストになっているので、後から特定の行を参照したり、件数を調べたりといった操作も簡単にできます。


with open("sample.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()   # ファイル全体をまとめて読み込む

for line in lines:          # リストの各行を順番に処理
    print(line.strip())     # 改行を取り除いて表示

1行目のテキスト
2行目のテキスト
3行目のテキスト

ただし、ファイルのサイズが大きい場合は、そのまま全部読み込むとメモリを多く使ってしまいます。扱うファイルが小さいと分かっているときにreadlines()を使うのが安心です。

3. forループを使った行読み込み

3. forループを使った行読み込み
3. forループを使った行読み込み

readline()を使って自分でwhileループを書く方法もありますが、Pythonではファイルオブジェクト自体をforループで回すことができます。内部的には1行ずつ読み進めてくれるので、コードを短く書けて読みやすいのが大きなメリットです。

まずは、テキストファイルを1行ずつ表示するシンプルな例を見てみましょう。


with open("sample.txt", "r", encoding="utf-8") as f:
    for line in f:                # ファイルから1行ずつ取り出す
        print(line.strip())       # 改行を取り除いて表示

このコードでは、for line in f の部分がポイントです。f(ファイルオブジェクト)から1行ずつline変数に入れてくれるので、自分でreadline()を呼び出したり、ループ条件を書く必要がありません。各行にはやはり末尾に改行文字\nが含まれるため、画面にそのまま出したくないときはstrip()で取り除いてから表示します。

行数が多いテキストファイルでも、1行ずつ処理しながら読み込んでくれるので、メモリの使いすぎを気にせずに済みます。「とりあえずテキストを上から順番に処理したい」という場合は、このforループの書き方を基本形として覚えておくと、Pythonでのファイル読み込みがぐっと楽になります。

4. 実際の活用例

4. 実際の活用例
4. 実際の活用例

行単位の読み込みは、ログファイル解析や大量データ処理に役立ちます。例えば、特定のキーワードを含む行だけを抽出できます。


keyword = "エラー"
with open("log.txt", "r", encoding="utf-8") as f:
    for line in f:
        if keyword in line:
            print(line.strip())

このようにすれば、ファイルの中から必要な情報だけを効率的に取り出せます。

5. readline() と readlines() の使い分け

5. readline() と readlines() の使い分け
5. readline() と readlines() の使い分け

どちらを使うべきかはファイルの大きさや処理内容によります。

  • readline():大きなファイル、1行ずつ順に処理したい場合
  • readlines():ファイルが小さく、全行をまとめて処理したい場合

また、単純に1行ずつ処理するだけならfor line in fが簡単でおすすめです。

6. プログラミング未経験者へのアドバイス

6. プログラミング未経験者へのアドバイス
6. プログラミング未経験者へのアドバイス

ファイルを扱うときはwith open()を使いましょう。自動的にファイルを閉じてくれるため、安全でミスが減ります。読み込んだ行は改行文字が含まれるので、表示の際はstrip()を使うときれいに見えます。

まずは小さなテキストファイルを用意して、readline()readlines()、そしてfor line in fを使い分けて練習してみると理解が深まります。

まとめ

まとめ
まとめ

Pythonでテキストファイルを一行ずつ丁寧に読み込む方法についてじっくり振り返ってみると、実際の開発現場でも役立つ知識が数多く含まれていることがわかります。特に、readlineによる段階的な読み込みやreadlinesによる全体読み込みの違いは、大きなデータを扱うときほど重要になります。さらに、for文を使った読み込みは初心者にも扱いやすく、直感的で、読みやすいコードを保ちながら効率よく処理できる点が魅力です。こうした基本的なファイル操作は、ログ解析やテキストマイニング、設定ファイルの読み込みなど多様な分野で活躍するため、実務でも頻繁に使われる操作となります。実際にプログラムを書くときには、読み込む行に余計な改行が含まれないようstripを活用したり、文字コードを指定して文字化けを防いだりする配慮も欠かせません。とくにutf八やshiftjisなどファイルごとの特性を理解して扱うことは、正確なデータ処理につながります。 また、with構文を使うことでファイルのクローズ処理を自動化し、安全性の高いプログラムを書くことができます。これは初心者がつまずきやすいポイントでもありますが、一度慣れてしまえば非常に便利で、再利用性の高いコードを書く土台となります。テキストを逐次処理する場合、無駄なメモリ消費を避けられるreadlineの能力は特に価値があり、巨大なログファイルや長大なデータを扱う環境では欠かせない存在です。逆に、ファイル全体を一気に操作したいときにはreadlinesが活躍し、リスト形式での柔軟な加工が可能になります。このように目的に応じて各メソッドの特徴を理解し、適切に使い分けることが重要です。 以下に簡単な活用例を改めて示します。

行単位で読み込むサンプルコード


with open("data.txt", "r", encoding="utf-8") as f:
    for line in f:
        if "重要" in line:
            print(line.strip())

このような形式で特定の文字列を抽出したり、ログの中から条件に合った行だけを抽出したりといった処理は、実際の業務で頻繁に行われます。ファイルの読み込みはプログラミングの基本でありながら奥が深く、データ分析、機械学習前処理、システム監視など幅広い用途で活躍します。今回学んだ内容をもとに、より複雑なファイル構造や複数ファイルの連続処理などへ発展させることもできます。こうした地道な操作が正確なプログラムの基礎となり、さらに応用力を高めるための土台にもなります。

先生と生徒の振り返り会話

生徒「きょう学んだreadlineとreadlinesの違いって、こんなに深い意味があったんですね。」

先生「そうなんです。単に行を読むだけでも、ファイルの大きさや処理の目的で使い分けが必要になります。」

生徒「for文で回す方法がいちばん楽でした。あれは内部的にreadlineを使ってるんですね。」

先生「その通りです。Pythonが裏でうまく処理してくれるので、読みやすく安全な書き方になります。」

生徒「ログ解析にも応用できそうで、すぐ実践してみたくなりました。」

先生「ぜひ試してください。テキストファイルを正確に扱えるようになると、できることの幅がぐんと広がりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Pythonでテキストファイルを1行ずつ読み込むにはどうすればいいですか?初心者向けに教えてください。

Pythonでテキストファイルを1行ずつ読み込むには、readline()メソッドを使う方法や、for文でファイルオブジェクトを直接ループする方法があります。どちらも1行ずつ処理できるので、大きなファイルでも安心して使えます。

Pythonのreadline()とはどんな機能ですか?ファイル処理でよく使う理由も知りたいです。

readline()は、Pythonでテキストファイルから1行だけを読み込むメソッドです。何度も呼び出すことで次の行に進むことができ、改行文字も含まれるため、表示時にはstrip()で整えるのが一般的です。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
New2
PHP
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明
No.8
Java&Spring記事人気No8
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)