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

Pythonでテキストファイルを一括で読み込む場合は、 read()メソッドを使います。 read()メソッドの引数に何も指定しなければ全体を読み込みますが、 引数を指定して読み込む文字数を指定することもできます。

with文による読み込み

まずは with文を使ったファイルの読み込み方法を紹介します。 with文を使う場合、 ファイルのクローズはPython側で自動的に行ってくれます。 クローズのタイミングはwithブロックを抜ける時です。 ですからオープン関数だけを記述して、 クローズメソッドを記述する必要はありません。

# ファイルパス
file_path = "a.txt"

# ファイルオープン
with open(file_path, "r", encoding="utf-8") as f:

	# ファイル全体を読み込む
	s = f.read()

print(s)
  • "r" : テキストモードで読み込み用としてファイルをオープン
  • encoding="utf-8" : 文字コードにUTF-8を指定

open()、close()による読み込み

with文を使わない場合は、 最後にファイルのクローズ処理 close()が必要なので忘れないようにしてください。

# ファイルパス
file_path = "a.txt"

# ファイルオープン
f = open(file_path, "r", encoding="utf-8")

# 読み込み
s = f.read()

# ファイルクローズ
f.close()

読み込む文字数を指定

read()メソッドの引数に読み込む文字数を指定することもできます。

次の内容のファイル「a.txt」を文字数を指定して読み込みます。

a.txt
あいうえお
かきくけこ
さしすせそ

read()の引数に「5」を指定してみます。

file_path = "a.txt"

with open(file_path, "r", encoding="utf-8") as f:

	s = f.read(5)

print(s, end="")

# 実行結果
あいうえお

「あいうえお」と5文字分読み込みました。
次は引数に「10」を指定してみます。

file_path = "a.txt"

with open(file_path, "r", encoding="utf-8") as f:

	s = f.read(10)

print(s, end="")

# 実行結果
あいうえお
かきくけ

改行コードが1文字分あるため「かきくけ」まで読み込みます。 文字数を指定する場合は改行コードも考慮した上で指定してください。

Python