Je dois délimiter la chaîne qui contient une nouvelle ligne. Comment pourrais-je y arriver? Veuillez vous référer au code ci-dessous.
Contribution:
data = """a,b,c
d,e,f
g,h,i
j,k,l"""
Sortie souhaitée:
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
J'ai essayé les approches ci-dessous:
1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')
str.splitlines
la méthode devrait vous donner exactement cela.
_>>> 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']
_
Si vous souhaitez séparer uniquement par des lignes , il est préférable d'utiliser splitlines () :
Exemple:
>>> 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']
Avec split (), cela fonctionne aussi:
>>> 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']
Cependant:
>>> 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"""
print(data.split()) # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
str.split
, par défaut, se scinde par tous les espaces. Si la chaîne réelle contient d'autres caractères d'espacement, vous pouvez utiliser
print(data.split("\n")) # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
Ou comme @ Ashwini Chaudhary suggéré dans les commentaires , vous pouvez utiliser
print(data.splitlines())
Il existe une méthode spécifique à cet effet:
data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
Voici:
>>> 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']
>>>