Dividir cadena usando un delimitador de nueva línea con Python

Necesito delimitar la cadena que tiene una nueva línea en ella. ¿Cómo lo lograría? Por favor, consulte el código de abajo.

Entrada:

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

Salida deseada:

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

He intentado los siguientes enfoques:

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

str.splitlines método str.splitlines debería darte exactamente eso.

 >>> 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 desea dividir solo por nuevas líneas , es mejor usar líneas divididas () :

Ejemplo:

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

Con split () funciona también:

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

Sin embargo:

 >>> 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 , de forma predeterminada, se divide por todos los caracteres de espacio en blanco. Si la cadena real tiene otros caracteres de espacio en blanco, es posible que desee utilizar

 print(data.split("\n")) # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l'] 

O como @Ashwini Chaudhary sugirió en los comentarios , puede usar

 print(data.splitlines()) 

Hay un método específicamente para este propósito:

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

Aqui tienes:

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