我需要分隔包含新行的字符串。我怎么做到这一点?请参考以下代码。
输入:
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')
答案 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')