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']