使用Python的换行符分隔符拆分字符串

时间:2014-02-26 13:31:07

标签: python string python-2.7

我需要分隔包含新行的字符串。我怎么做到这一点?请参考以下代码。

输入:

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

6 个答案:

答案 0 :(得分:135)

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

答案 1 :(得分:10)

如果您想仅按新内容拆分,最好使用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']

答案 2 :(得分:8)

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 suggested in the comments,您可以使用

print(data.splitlines())

答案 3 :(得分:7)

有一种专门用于此目的的方法:

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

答案 4 :(得分:3)

你走了:

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

答案 5 :(得分:0)

由于分割得到一个字符串作为分隔符,你应该有额外的反斜杠 output = data.split('\n')