カテゴリ: Python 更新日: 2025/12/08

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

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

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

生徒

「先生、Pythonでファイルを開いて中身を読む方法はわかったんですけど、長い文章を1行ずつ読むことってできますか?」

先生

「もちろんできますよ。Pythonにはreadline()readlines()という便利な関数があって、1行ずつテキストファイルを読み取ることができるんです。」

生徒

「どんな違いがあるんですか?どっちを使えばいいんでしょう?」

先生

「では、実際に例を見ながら、どのように使い分けるのかを詳しく学んでいきましょう!」

1. readline()とは?1行ずつ読み込む基本の関数

1. readline()とは?1行ずつ読み込む基本の関数
1. readline()とは?1行ずつ読み込む基本の関数

readline()は、ファイルを1行ずつ順番に読み取る関数です。たとえば、小説のように長い文章が何行にも分かれている場合に、1行ずつ処理したいときに使います。

たとえるなら、「ノートを1ページずつめくって読む」ようなイメージです。


with open("sample.txt", "r") as f:
    line = f.readline()
    while line:
        print(line.strip())
        line = f.readline()

このコードでは、while文でファイルの終わりまで1行ずつ読み取ります。strip()は、行の末尾にある改行文字(「\n」)を取り除くための関数です。

たとえば、sample.txtに以下のような内容があったとします。


りんご
みかん
ぶどう

このプログラムを実行すると、次のように1行ずつ出力されます。


りんご
みかん
ぶどう

このようにreadline()を使えば、順番に1行ずつ読みながら処理を行うことができます。

2. readlines()とは?すべての行を一度に読み込む方法

2. readlines()とは?すべての行を一度に読み込む方法
2. readlines()とは?すべての行を一度に読み込む方法

次に紹介するのがreadlines()です。これは、ファイルの全ての行を一度に読み込み、リスト(list)として返す関数です。

たとえば、readlines()で同じファイルを読み取ると、こんなふうに使えます。


with open("sample.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        print(line.strip())

readlines()は一気にすべての行をリストにするので、あとからまとめて処理するのに向いています。

出力結果は、先ほどと同じになります。


りんご
みかん
ぶどう

実際にPythonの内部では、次のようにリストとしてデータを扱っています。


["りんご\n", "みかん\n", "ぶどう\n"]

このように、各行の末尾には改行文字「\n」が含まれているため、出力の際にstrip()で取り除くのがポイントです。

3. readline()とreadlines()の違いを整理しよう

3. readline()とreadlines()の違いを整理しよう
3. readline()とreadlines()の違いを整理しよう

ここで、readline()readlines()の違いをまとめてみましょう。

関数名特徴使いどころ
readline() 1行ずつ読み込む。大きなファイルでもメモリに優しい。 大量のデータを少しずつ処理したいとき。
readlines() すべての行を一度にリストとして読み込む。 小さなファイルをまとめて処理したいとき。

つまり、ファイルが大きくて全部を一気に読み込むとメモリが足りなくなりそうな場合はreadline()を使い、内容が少なくてすぐに全部読み込める場合はreadlines()が便利です。

4. for文を使ってもっとシンプルに書く方法

4. for文を使ってもっとシンプルに書く方法
4. for文を使ってもっとシンプルに書く方法

実は、Pythonではファイルオブジェクト自体をfor文で回すことができます。これにより、readline()を使わなくても1行ずつ自動で読み取れます。


with open("sample.txt", "r") as f:
    for line in f:
        print(line.strip())

この書き方はPythonらしいシンプルな書き方で、多くの現場で使われています。with open()のブロックを抜けると自動的にファイルが閉じられるので、初心者でも安全に扱えます。

5. ファイルの行数を数える方法

5. ファイルの行数を数える方法
5. ファイルの行数を数える方法

ファイルを1行ずつ読みながら、何行あるかを数えることもできます。たとえば、次のように書くと、行数をカウントできます。


count = 0
with open("sample.txt", "r") as f:
    for line in f:
        count += 1
print("ファイルの行数は", count, "行です。")

もしsample.txtに3行のデータがあれば、実行結果はこうなります。


ファイルの行数は 3 行です。

このようにfor文と組み合わせることで、readline()readlines()を使わなくても柔軟に処理できます。

6. 文字コードに注意しよう(UTF-8 / Shift-JISなど)

6. 文字コードに注意しよう(UTF-8 / Shift-JISなど)
6. 文字コードに注意しよう(UTF-8 / Shift-JISなど)

日本語のファイルを開くときに、文字化けが起きることがあります。これは、ファイルの文字コード(文字を数字に変換して保存するルール)が原因です。

多くの日本語ファイルは「Shift-JIS」や「UTF-8」という形式で保存されています。Pythonで文字化けを防ぐには、encodingを指定して開くようにします。


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

もし「UnicodeDecodeError」というエラーが出た場合は、次のようにしてみましょう。


with open("sample.txt", "r", encoding="shift_jis") as f:
    for line in f:
        print(line.strip())

ファイルの文字コードがわからないときは、まずutf-8を試して、ダメならshift_jisに切り替えるのがおすすめです。

7. まとめ:1行ずつ読むならreadline()・すべて読むならreadlines()

7. まとめ:1行ずつ読むならreadline()・すべて読むならreadlines()
7. まとめ:1行ずつ読むならreadline()・すべて読むならreadlines()

Pythonでファイルを扱うとき、readline()readlines()を使い分けることで、効率よくデータを処理できます。特に、with open()と組み合わせることで、安全で読みやすいコードになります。

最初のうちは、for文で1行ずつ処理する方法から慣れていくのが良いでしょう。慣れてくると、ファイルの中身を自動処理したり、条件に応じて特定の行だけ抽出したりと、さまざまな応用ができるようになります。

カテゴリの一覧へ
新着記事
New1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
New2
Flask
Flaskアプリのセキュリティ対策まとめ!初心者向けに基本をやさしく解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.5
Java&Spring記事人気No5
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.6
Java&Spring記事人気No6
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本