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

Pythonでテキストファイルを読み込む方法を徹底解説!read()・readline()・readlines()の違いと使い分け

テキストファイルとは、単純な文字情報のみで構成されたファイルのことです。Pythonには、テキストファイルを読み書きするための組み込み関数が標準で用意されており、追加のライブラリをインストールすることなく手軽にファイル操作が行えます。

この記事では、Pythonでテキストファイルを読み込む3つの方法について、具体的なコード例とともに詳しく解説します。

テキストファイルを読み込む3つの方法

Pythonでテキストファイルを読み込む際に使える主なメソッドは以下の3つです。

  • read() — ファイル全体を一度に読み込み、すべての内容を1つの文字列として返します。
  • readline() — ファイルから1行だけ読み込み、その行を文字列として返します。
  • readlines() — ファイル内のすべての行を読み込み、各行を要素とする文字列のリストとして返します。

基本的なファイルの読み込み手順

ここでは、例として「myfile.txt」というテキストファイルを用意します。ファイルを読み込むには、まずopen()関数を使ってファイルを開く必要があります。

open()関数には2つの引数を渡します。1つ目はファイル名、2つ目はオープンモードです。読み込みモードは「r」で指定します。これは「read(読み取り)」の略です。

コード例

file = open("myfile.txt", "r")

print("read関数:")
print(file.read())
print()

# read()を実行するとカーソルがファイル末尾に移動するため、
# seek(0)でカーソルを先頭に戻します
file.seek(0)

print("readline関数:")
print(file.readline())
print()

file.seek(0)  # カーソルを先頭に戻す

print("readlines関数:")
print(file.readlines())
file.close()

実行結果

read関数:
This is an article on reading text files in Python.
Python has inbuilt functions to read a text file.
We can read files in three different ways.
Create a text file which you will read later.

readline関数:
This is an article on reading text files in Python.

readlines関数:
['This is an article on reading text files in Python.\n', 'Python has\ninbuilt functions to read a text file.\n', 'We can read files in three\ndifferent ways.\n', 'Create a text file which you will read later.']

実行結果からわかること

出力結果を見ると、各メソッドの動作の違いが明確にわかります。

  • read():ファイル全体を読み込み、すべての内容をまとめて返します。
  • readline():最初の1行のみを読み込み、それを文字列として返します。再度呼び出すと次の行が返されます。
  • readlines():すべての行を読み込み、改行コード(\n)を含む各行がリストの要素として格納された状態で返します。

ポイント:seek(0)でカーソル位置をリセット

サンプルコード内で使われているseek(0)は重要なテクニックです。read()メソッドを実行すると、ファイルポインタ(カーソル)がファイルの末尾まで移動します。そのままreadline()やreadlines()を呼び出しても何も読み込めないため、seek(0)を使ってカーソルをファイルの先頭に戻しています。

with文を使ったより安全な書き方

上記の例では最後にclose()でファイルを明示的に閉じていますが、with文を使うと処理終了後に自動的にファイルがクローズされるため、閉じ忘れによるトラブルを防げます。実務では以下のように書くのが一般的です。

with open("myfile.txt", "r", encoding="utf-8") as f:
    print(f.read())

また、日本語などのマルチバイト文字を扱う場合は、encoding="utf-8"を指定しておくと文字化けを防げるのでおすすめです。

  1. Pythonでテキストファイルを読み書きする方法【初心者向け解説】

    テキストファイルとバイナリファイルの違いテキストファイルとは、人間が読める文字だけで構成されたファイルのことです。その対になる存在が「バイナリファイル」で、こちらは読み取り可能な文字列として構成されていないファイル全般を指します。JPEGやGIFなどの画像ファイル、MP3などの音声ファイル、WordやPDFのようなドキュメント形式などがその代表例です。両者の最大の違いは、バイナリファイルを正しく扱うには専用のプログラム(あるいはそのフォーマットに関する専門知識)が必要という点です。一方、テキストファイルはプレーンテキストを編集できるあらゆるソフトウェアで開けるうえ、Pythonのようなプログラ

  2. Pythonファイル操作の基本:作成・読み込み・書き込み・削除を徹底解説

    この記事では、Pythonにおけるファイル操作(ファイルハンドリング)の基本について解説します。以下のコード例を通じて、ファイルの作成、読み込み、書き込み、削除といった一連の操作方法を学ぶことができます。 Pythonでファイルを作成する方法 Pythonで新しいファイルを作成するには、open()メソッドを使用します。このメソッドは「ファイル名」と「モード」の2つの引数を受け取ります。モードには x、a、w のいずれかを指定します。 x: 新規ファイルを作成します。同名のファイルが既に存在する場合はエラーが発生します。 a: 既存ファイルへの追記用モードです。ファイルが存在しない場合は新し