Python: ファイルをリストとして読み込む(改行コードなしバージョン)

ファイルの内容を行ごとにリストとして読み込む場合は、 readlines()メソッドを使う方法があります。
ですがreadlines()メソッドでは各要素の末尾に改行コードが入ってきます。 改行コードが不要な場合は取り除くか、別の方法で取得する必要があります。

ここでは 「ファイルの内容を改行コードのないリストとして取得する方法」を紹介します。

改行なしリスト①: read() + splitlines()

reallines()メソッドを使わずに、 read()メソッドとsplitlines()メソッドを使う方法です。
read()メソッドはファイルの内容を1つの文字列として読み込み、 splitlines()は文字列を改行コードで分割してリストを返します。 「read() + splitlines()」の方法は見た目もシンプルでわかりやすいと思います。

次のテキストファイル「a.txt」を読み込みます。

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

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

	# リストとして読み込む(改行コードなし)
	lines = f.read().splitlines()

print(lines)
実行結果
['a', 'b', 'c']

改行なしリスト②: readlines() + map()関数

readlines()メソッドとmap()関数を使う方法です。 map()関数はリストやタプルなどの要素を順番に、 指定された処理を行って新しいオブジェクトを作る関数です。

まずはreadlines()メソッドで改行コード付きのリストを作成します。 その後でmap()関数を使って改行コードを取り除いたリストを作成します。 map()関数の引数にラムダ式を使うと記述が1行で済みます。

下のサンプルコードの赤字の部分が改行コードを取り除くコードです。

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

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

	# リストとして読み込む(改行コードあり)
	lines = f.readlines()

# 改行コードを取り除く
new_lines = list(map(lambda s:s.rstrip("\n"), lines))

print(new_lines)
実行結果
['a', 'b', 'c']

関連記事:ラムダ式(無名関数)の書き方と使い方

Python