我需要对包含换行符的字符串进行分隔。我该如何实现?请参考下面的代码。
输入:
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')
我需要对包含换行符的字符串进行分隔。我该如何实现?请参考下面的代码。
输入:
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')
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']
。 - Matthew Moisendata = """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
默认情况下会通过所有空格字符进行分割。如果实际字符串中有其他空格字符,则可能需要使用
str.split
,默认情况下会通过所有空格字符进行分割。如果实际字符串包含其他空格字符,则建议使用
print(data.split("\n")) # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
或者如@Ashwini Chaudhary在评论中建议的那样,你可以使用
print(data.splitlines())
.splitlines
,如果字符串中有空格等情况怎么办。 - Ashwini Chaudharysplit("\n")
。splitlines
比 .split("\n")
更好吗? - thefourtheye\r\n
和其他类型的行分界符。 - Ashwini Chaudhary\n
结尾,splitlines()
会忽略它,而split("\n")
则会在结果末尾有一个额外的空字符串""
。 - Moberg如果您只想按换行符进行分割,可以使用 str.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']
使用str.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.split('\n')
一样传递要分割的字符,这似乎有点奇怪? - user1604294data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
请看下面:
>>> 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']
>>>
import re
data = """a,b,c
d,e,f
g,h,i
j,k,l"""
output = re.split("\n", data)
print(output) #['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
希望这能帮助到某个人。
由于split函数使用字符串作为分隔符,因此您需要添加额外的反斜杠 output = data.split('\\n')
repr(data)
的输出是什么? - Ashwini Chaudhary