Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでファイルを読み込む方法:read・readline・readlinesの使い方を徹底解説

open()関数でファイルを開き、「r」モードを指定することでファイルを読み取ることができます。read()、readline()、readlines()の各関数は、開いたファイルの内容を返します。


Pythonは、データ処理を行いたい場合に非常に便利なプログラミング言語です。ファイルの読み書きや操作を簡単に行える組み込み関数が数多く用意されています。

例えば、従業員名のリストがあり、あるユーザーの名前がそのリストに含まれているかどうかを確認したいとしましょう。従業員名のリストをファイルとして保存しておけば、Pythonでそのファイルを読み込み、名前が登録されているかをチェックできます。

この記事では、Pythonでファイルを読み込む基本について解説します。まずファイルの開き方とアクセス方法を説明し、その後、実際にファイルを読み取るさまざまな方法を見ていきましょう。

Pythonで読み取り用にファイルを開く

Pythonでファイルを読み込む最初のステップは、対象となるファイルを開くことです。どのファイルを開きたいのか、その名前をPythonに伝える必要があります。

ファイルを読み込むには、まずファイルの場所(パス)をPythonに指定します。ファイルのパスを変数に代入することで指定できます。

Pythonでファイルを開くための基本的な構文は以下の通りです。

filename = "/users/career_karma/names.txt"
names_file = open(filename, 'r')

このコードでは、「filename」変数で定義したパスにあるファイルを開いています。open()関数の末尾にあるrフラグは「読み取り専用で開く」ことを意味します。ファイルを編集したい場合は、このフラグを変更することも可能です。

Pythonでファイルを読み込む3つの関数

ファイルを開いたら、次はPythonを使って内容を読み取ります。ファイルからデータを読み込むために使える関数は主に3つあります。

  • read():ファイルの全内容を返す
  • readline():ファイルの次の1行を返す
  • readlines():ファイル内の各行を要素としたリストを返す

それぞれの動作を詳しく見ていきましょう。

テキストファイル全体を読み込む:read()

read()メソッドは、ファイルの全内容を文字列として返します。名前のリストが含まれるテキストファイルに対してread()を使用する例は以下の通りです。

path = "/users/career_karma/names.txt"
names_file = open(path, 'r')
print(names_file.read())

実行結果は以下のようになります。

"Sally\nAlex\nPamela\nJonas\nLuke\nWill\n"

read()メソッドは、namesファイルのすべての内容を、文字列末尾の改行文字(\n)も含めて返しました。

1行ずつ読み込む:readline()

readline()関数は、ファイルの次の1行を返します。行のテキストに加えて、末尾の改行文字も一緒に返される点に注意してください。以下のコードは、ファイルの最初の行を読み込みます。

print(names_file.readline())

実行結果:

"Sally\n"

続けて2行目も読みたい場合は、readline()をもう一度呼び出します。

names_file = open(path, 'r')
print(names_file.readline())
print(names_file.readline())

実行結果:

"Sally\n"
"Alex\n"

なお、ファイルポインタは読み込んだ位置から移動しないため、再度先頭から読み込む場合は、ファイルを開き直す必要があります。

forループで複数行を読み込む

readline()関数は、ファイルを1行ずつ順番に読み込みたい場合に便利です。forループと組み合わせて使うのが一般的です。

names_file = open(path, 'r')
for i in range(0, 2):
    print(names_file.readline())

実行結果:

"Sally\n"
"Alex\n"

全行をリストとして取得する:readlines()

最後に、readlines()メソッドは、ファイル内の各行をリストとして返します。戻り値は配列(リスト)で、各要素がファイル内の1行に対応します。

print(names_file.readlines())

実行結果:

['Sally\n', 'Alex\n', 'Pamela\n', 'Jonas\n', 'Luke\n', 'Will']

注意点:ファイルは一度しか読み込めない

重要なポイントとして、ファイルは一度読み込むと、同じ状態では再読み込みできません。例えばreadlines()でファイルを読み込んだ後、さらに別の読み込み操作を実行しても、空の文字列が返されます。何度もファイルを読み込みたい場合は、open()でもう一度ファイルを開き直してから読み込んでください。

ファイルを閉じる:close()

ファイルの読み込みが終わったら、close()メソッドを呼び出してファイルを閉じるのが良い習慣です。

names_file.close()

また、with文を使えば、処理が終わった時点で自動的にファイルを閉じてくれるため、より安全で推奨される方法です。

with open(path, 'r') as names_file:
    print(names_file.read())

まとめ

read()、readline()、readlines()の3つの関数を使い分けることで、ファイルの特定の部分だけを読み込んだり、全内容を取得したりできます。読み込んだデータは、目的に応じて自由に加工できます。

今回は、Pythonでのファイルの開き方、各メソッドを使った読み込み方法、そしてファイルを閉じる方法までを解説しました。これであなたも、プロのようにPythonでファイルを開いて読み込めるはずです。さらにPythonを学びたい方は、Pythonのコーディングに関するガイドもぜひ参考にしてください。

  1. Pythonの継承を完全解説:親クラス・子クラスの基本からメソッドのオーバーライドまで

    Pythonの継承(inheritance)とは、あるクラス(子クラス)が別のクラス(親クラス)のコードを受け継いで利用できるようにする仕組みです。継承はPythonのようなオブジェクト指向言語において不可欠な機能であり、コードの重複を減らし、開発効率を大幅に向上させます。 Pythonはオブジェクト指向言語であり、再利用可能なコードブロックを作成することで、より効率的なプログラミングを実現できます。その中心的な手法のひとつが「継承」です。継承を使えば、あるサブクラスが別のクラスのコードを参照・利用できるようになります。 たとえば、「銀行口座」を管理するクラスがあり、そこから「子供用銀行口座

  2. Pythonインタープリターとは?仕組みと初心者向けオンライン環境を徹底解説

    Pythonは学びやすいプログラミング言語として知られています。その理由のひとつが、自分のマシンに正しいバージョンのPythonをインストールしなくても、オンラインで利用できるPythonインタープリターが数多く存在する点です。本記事では、Pythonインタープリターの仕組みについて解説し、初心者にも使いやすい人気のオンラインインタープリターをご紹介します。 Pythonプログラムはどのように実行されるのか? PythonはJavaと同様に、純粋なインタプリタ言語ともコンパイラ言語とも分類できず、両方の性質を併せ持っています。 ここでいう「コンパイル」とは、特定のプラットフォームに依存し