カテゴリ: Python 更新日: 2026/08/08

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. 実際の活用例

テキストファイルを1行ずつ読み込む方法は、実際の現場でもよく使われます。とくにログファイルの解析や、日々の記録を集計するときなど、「1行が1件のデータ」という形になっているファイルとは相性がとても良いです。ここではイメージしやすいログ解析の例から見ていきましょう。

例えば、システムが出力したログファイルの中から、エラーが含まれる行だけを抜き出したい場合を考えます。


keyword = "エラー"

with open("log.txt", "r", encoding="utf-8") as f:
    for line in f:                    # ログを1行ずつ読み込む
        if keyword in line:           # 行の中にキーワードが含まれているかチェック
            print(line.strip())       # 条件に合う行だけを表示

このサンプルでは、変数keywordに探したい文字列(ここでは「エラー」)を入れておき、for line in fで1行ずつ読み込みながら、if keyword in lineでその行にキーワードが含まれているかどうかを調べています。合致した行だけprint()することで、エラーに関係する部分だけを効率よく確認できます。

ログファイルはサイズが大きくなりやすいので、1行ずつ処理する読み込み方はとても重要です。全体をまとめて読み込まずに済むため、メモリへの負担を抑えながら必要な行だけを取り出せます。

もう少しシンプルな例として、「空行を飛ばしながら中身のある行だけを表示する」といった処理もよく行われます。


with open("memo.txt", "r", encoding="utf-8") as f:
    for line in f:
        text = line.strip()
        if text:                      # 空行でなければ表示する
            print(text)

このように、Pythonでテキストファイルを1行ずつ読み込むようにしておくと、「特定の行だけ抽出する」「空行を除外する」「条件に合った行をカウントする」といった処理を柔軟に組み合わせることができます。身近なログやメモのファイルで試してみると、行単位の読み込みの便利さが実感しやすくなるはずです。

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()で整えるのが一般的です。

Pythonのreadlines()とreadline()の違いは何ですか?

readlines()はファイル全体を一気に読み込んでリストとして返します。一方、readline()は1行ずつ順番に読み込むメソッドです。メモリ使用量の観点から、大きなファイルにはreadline()が適しています。
コメント
コメント投稿は、ログインしてください

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

関連記事:
Python のファイル処理の記事一覧へ
新着記事
New1
Claude
ClaudeにPHPデバッグを相談するコツ!原因候補を仮説に分けて確認する質問例
New2
Python
PythonのCLIで対話型メニューを作る方法(prompt_toolkit)
New3
ChatGPT
ChatGPTでPHPコードを理解する方法!読めない処理をわかりやすく質問しよう
New4
PHP
PHP の定数(define, const)を使った設定方法を徹底解説!
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.3
Java&Spring記事人気No3
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.4
Java&Spring記事人気No4
Python
PythonでSQLiteを使う方法を完全ガイド!初心者でもわかるデータベース基本操作
No.5
Java&Spring記事人気No5
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonのシェルスクリプトを自動実行する方法(cron & Task Scheduler)
No.7
Java&Spring記事人気No7
Claude
ClaudeにPHPリファクタリングを相談するコツ!目的・前提・制約を仕様メモにまとめるコツ
No.8
Java&Spring記事人気No8
PHP
PHPのMVCパターンを完全解説!初心者でもわかるModel・View・Controller