splitlinesで文字列を改行で分割する方法について解説します。
非常に簡単なので1分間ほどで理解できます。
splitlines関数の文法
splitlines関数の使い方は次の通りです。
str.splitlines(keepends=False)
splitlines()
は文字列型の値のメソッドとして使用します。
第一引数keepends
にTrueを入力すると分割後の文字列に改行コードがついたままになります。
省略した場合は、Falseになり、分割後の文字列に改行コードはつかなくなります。
返却値は区切った単語のリストを返します。
例を見てみましょう。
>>> "abc\r\nefg\rhij\nklm".splitlines()
['abc', 'efg', 'hij', 'klm']
また、改行コードを文字列を残したい場合は次の例のようにkeepends=True
を入力します。
>>> "abc\r\nefg\rhij\nklm".splitlines(keepends=True)
['abc\r\n', 'efg\r', 'hij\n', 'klm']
splitとの違い
split
関数とsplitlines
関数の違いを考えてみましょう。
返却値に改行コードが付与されなくとも問題ない場合はどちらを使っても構いません。
splitlines
関数の場合
>>> "abc\r\nefg\rhij\nklm".splitlines()
['abc', 'efg', 'hij', 'klm']
split
関数の場合
>>> "abc\r\nefg\rhij\nklm".split()
['abc', 'efg', 'hij', 'klm']
しかし、改行コードを残したい場合はsplitlines
関数を使用する必要があります。
splitlines
関数の場合
>>> "abc\r\nefg\rhij\nklm".splitlines(keepends=True)
['abc\r\n', 'efg\r', 'hij\n', 'klm']
split
関数の場合(改行コードがない)
>>> "abc\r\nefg\rhij\nklm".split()
['abc', 'efg', 'hij', 'klm']
まとめ
改行コードがなくなっても問題ない場合は、split
関数とsplitlines
関数のどちらを使用しても問題ありませんが、改行コードを残す必要があるならsplitlines
関数を使用しましょう。