Pythonでファイルを読み込む5通りの方法【リスト・for文・一行ずつ】

Pythonでファイルを読み込むときには、すべてを一度に読み込むだけでなく一行ずつやりストに格納する方法、for文で一行ずつ処理する方法があります。

今回はそんなファイルの読み込み方を5つ紹介します。この記事ではopen関数やwith文の使い方は知っている前提で進めます。

ファイルの読み込みとは

ファイルを開くときはopne関数を使いますが、そのとき開いたファイルは「ファイルオブジェクト」が作られます。

Python-open公式ページ

これから紹介する読み込むときに使うreadメソッドなどは、このファイルオブジェクトに使えるメソッドになります。

オブジェクトはデータの種類・性質とそのデータに対してできる処理をまとめて指す言葉だと考えておきましょう。メソッドはそのデータ専用の関数という意味です。

全て読み込む

1.readメソッド

「sample.txt」ファイルに書かれている3行の文を読み込んでみると以下のようになります。ファイルの文すべてが出力されています。

一行ずつ読み込む

2.readlineメソッド

  • 一行だけ読み込む
  • 行数だけ実行しないとすべて読み込めない

上の例では一回だけしかreadlineメソッドを使っていないので最初の一行だけが読み込まれています。もしすべての行を読み込むなら以下のようにします。

このようにすればすべての行を読み込めますが、毎回行数が分かっているとも限りません。その時に使えるのがfor文です。

3.for文でループさせる

  • for文にファイルオブジェクトを渡す
  • ファイルオブジェクトはイテラブル
    • イテラブルとは反復可能

print関数で出力するときに「end=”」がないと改行が多くなってしまいます。各行に含まれる改行とprint関数の改行が重なるためです。

一行ずつリストに格納する

4.list関数

  • 一行ずつリストに格納される
  • 改行(\n)も出力される
  • 出力結果はreadlinesメソッドと同じ

5.readlinesメソッド

  • 一行ずつリストに格納される
  • 改行(\n)も出力される
  • 出力結果はlist関数を使ったときと同じ

改行も出力されるので注意しましょう。次のように改行をたくさんするとその分だけ出力されます。

まとめ

  • readメソッド:すべて読み込み
  • readlineメソッド:一行ずつ読み込む
  • readlinesメソッド:一行ずつリストに格納
    • list関数と同じ
  • ファイルオブジェクトはfor文でループできる

関連記事

プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]