web-dev-qa-db-ja.com

Pythonで改行区切り文字を使用して文字列を分割します

改行を含む文字列を区切る必要があります。どうすれば達成できますか?以下のコードを参照してください。

入力:

data = """a,b,c
d,e,f
g,h,i
j,k,l"""

必要な出力:

['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

私は以下のアプローチを試しました:

1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')
70
Hariharan

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

改行のみを分割する場合は、 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']
10
KiraLT
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())
8
thefourtheye

この目的専用のメソッドがあります:

data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
7
pajton

どうぞ:

>>> 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']
>>> 
3
Games Brainiac