回答:
str.splitlines
メソッドはそれを正確に与えるはずです。
>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
str.splitlines
は、ファイナル\n
が存在する場合はそれを削除することです。つまり、'foo\nbar\n'.split() == ['foo', 'bar', '']
しばらくstr.splitlines('foo\nbar\n') == ['foo', 'bar']
data = """a,b,c
d,e,f
g,h,i
j,k,l"""
print(data.split()) # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
str.split
デフォルトでは、すべての空白文字で分割されます。実際の文字列に他の空白文字が含まれている場合は、
print(data.split("\n")) # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
または@Ashwini Chaudharyがコメントで示唆したように、あなたは使うことができます
print(data.splitlines())
.splitlines
に、文字列にスペースがある場合はどうするかなど
split("\n")
た理由です。あるsplitlines
よりも良いですか.split("\n")
?
\r\n
とだけでなく、ライン境界の他のタイプ。
\n
、splitlines()
一方でそれを無視してsplit("\n")
、追加の空の文字列になります""
結果の末尾を。
改行だけで分割したい場合は、splitlines()を使用することをお勧めします。
例:
>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data
'a,b,c\nd,e,f\ng,h,i\nj,k,l'
>>> data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
split()でも動作します:
>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data
'a,b,c\nd,e,f\ng,h,i\nj,k,l'
>>> data.split()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
しかしながら:
>>> data = """
... a, eqw, qwe
... v, ewr, err
... """
>>> data
'\na, eqw, qwe\nv, ewr, err\n'
>>> data.split()
['a,', 'eqw,', 'qwe', 'v,', 'ewr,', 'err']
どうぞ:
>>> data = """a,b,c
d,e,f
g,h,i
j,k,l"""
>>> data.split() # split automatically splits through \n and space
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
>>>
repr(data)
何ですか?