Python: 文字列を改行で分割する splitlines()

文字列を改行で分割する場合は、splitlines()メソッドを使うと便利です。

Pythonに用意されている split() メソッドでも改行分割できますが、 splitlines() メソッドだと "\n""\r\n"のどちらでも自動で判断して 分割してくれます。 改行分割の場合は素直に splitlines()メソッドを使うことをおすすめします。

書式
文字列.splitlines()

# 改行コードを残す場合
文字列.splitlines(keepends=True)

戻り値は改行コードで分割されたリストです。
分割後の文字列の中に改行コードを残したい場合は 「keepends=True」を指定します。デフォルト値はFalseです。

次のサンプルコードでは、改行コード「"\n"」が2つある文字列を改行コードで分割しています。

s = "ab\ncd\nef"

# 改行コードで分割
li = s.splitlines()

print(li) # ['ab', 'cd', 'ef']

次のコードは「"\n"」と「"\r\n"」が混じったコードです。 両方の改行コードに対応しているのがわかります。

s = "ab\ncd\r\nef"

# 改行コードで分割
li = s.splitlines()

print(li) # ['ab', 'cd', 'ef']

改行コードを残す場合

「keepends=True」を指定すると分割された文字列の中に改行コードを残すことができます。
次のサンプルコードでは、分割後の文字列の中に改行コードが残されて 「"ab\n"」「"cd\n"」「"ef"」となっています。

s = "ab\ncd\nef"

li = s.splitlines(keepends=True)

print(li) # ['ab\n', 'cd\n', 'ef']
Python