A continuación se describe el funcionamiento de las cadenas que contienen nuevas líneas en Python.
- Crear una cadena que contenga nuevas líneas, imprimir la salida (mostrar)
- carácter de nueva línea (uno o ambos CR y LF según el sistema)
\n
(LF),\r\n
(CR+LF) - triple cotización
'''
,"""
- Si quiere hacer una sangría
- carácter de nueva línea (uno o ambos CR y LF según el sistema)
- Concatenar una lista de cadenas con nuevas líneas
- Dividir la cadena en nuevas líneas y lista:
splitlines()
- Eliminar y sustituir los códigos de avance de línea
- Imprimir la salida sin la nueva línea final
Crear una cadena que contenga nuevas líneas, imprimir la salida
carácter de nueva línea (uno o ambos CR y LF según el sistema) \n(LF), \r\n(CR+LF)
La inserción de un código de avance de línea dentro de una cadena dará lugar a una nueva línea.
s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3
s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3
Los códigos de salto de línea pueden utilizarse de las siguientes maneras. Algunos editores permiten seleccionar un código de salto de línea.
Macを含むUnix系 | \n (LF) |
Windows系 | \r\n (CR+LF) |
triple cotización ''',"""
Si se utilizan comillas triples para encerrar la cadena, ésta será una cadena tal cual, incluyendo las nuevas líneas.
s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Si quiere hacer una sangría
Las comillas triples también son espacios en una cadena, por lo que si se intenta escribir de forma ordenada en el código y con sangría como se muestra a continuación, se insertarán espacios innecesarios.
s = '''
Line1
Line2
Line3
'''
print(s)
#
# Line1
# Line2
# Line3
#
Utilizando una barra invertida para ignorar las nuevas líneas en el código y convertirlo en una línea de continuación, se puede escribir como sigue
Encierra cada línea con '' o «» y añade un carácter de nueva línea ←n el final de la frase.
s = 'Line1\n'\
'Line2\n'\
'Line3'
print(s)
# Line1
# Line2
# Line3
En este caso, la sintaxis es que los literales de cadena sucesivos se concatenan. Véase el siguiente artículo para más detalles.
- Artículos relacionados:Concatenar y unir cadenas en Python (operador +, join, etc.)
Si quieres añadir sangría en una cadena, sólo tienes que añadir un espacio a la cadena en cada línea.
s = 'Line1\n'\
' Line2\n'\
' Line3'
print(s)
# Line1
# Line2
# Line3
Además, como los saltos de línea pueden hacerse libremente en los paréntesis, lo siguiente puede escribirse utilizando paréntesis en lugar de barras invertidas.
s = ('Line1\n'
'Line2\n'
'Line3')
print(s)
# Line1
# Line2
# Line3
s = ('Line1\n'
' Line2\n'
' Line3')
print(s)
# Line1
# Line2
# Line3
Si sólo quiere alinear el principio de una línea, sólo tiene que añadir una barra invertida a la primera línea de comillas triples.
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3
Concatenar una lista de cadenas con nuevas líneas
El método de cadenas join() puede utilizarse para concatenar una lista de cadenas en una única cadena.
- Artículos relacionados:Concatenar y unir cadenas en Python (operador +, join, etc.)
Cuando se llama a join() desde un carácter de nueva línea, cada elemento de la cadena se concatena con una nueva línea.
l = ['Line1', 'Line2', 'Line3']
s_n = '\n'.join(l)
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
s_rn = '\r\n'.join(l)
print(s_rn)
# Line1
# Line2
# Line3
print(repr(s_rn))
# 'Line1\r\nLine2\r\nLine3'
Como en el ejemplo anterior, la función incorporada repr() puede utilizarse para comprobar las cadenas que contienen códigos de nueva línea tal cual.
Dividir la cadena en nuevas líneas y lista: splitlines()
El método de cadena splitlines() puede utilizarse para dividir una cadena en una lista de nuevas líneas.
splitlines() dividirá cualquiera de los siguientes códigos de salto de línea. Los tabuladores verticales y los saltos de página también se dividen.
\n
\r\n
\v
\f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']
Eliminar y sustituir los códigos de avance de línea
Combinando splitlines() y join(), es posible eliminar (quitar) los códigos de las nuevas líneas de una cadena que contenga nuevas líneas o sustituirlas por otras.
s = 'Line1\nLine2\r\nLine3'
print(''.join(s.splitlines()))
# Line1Line2Line3
print(' '.join(s.splitlines()))
# Line1 Line2 Line3
print(','.join(s.splitlines()))
# Line1,Line2,Line3
También es posible cambiar por lotes los códigos de salto de línea. Incluso si los códigos de salto de línea están mezclados o son desconocidos, pueden dividirse utilizando splitlines() y luego concatenarse con el código de salto de línea deseado.
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
Como se ha mencionado anteriormente, splitlines() dividirá cualquier código de nueva línea, por lo que no es necesario preocuparse especialmente por los códigos de nueva línea en el caso del método que combina splitlines() y join().
Si el código de la nueva línea es claro, también puede ser reemplazado por el método replace(), que reemplaza la cadena.
s = 'Line1\nLine2\nLine3'
print(s.replace('\n', ''))
# Line1Line2Line3
print(s.replace('\n', ','))
# Line1,Line2,Line3
Tenga en cuenta, sin embargo, que no funcionará si contiene códigos de avance de línea diferentes a los esperados.
s = 'Line1\nLine2\r\nLine3'
s_error = s.replace('\n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2\r,Line3'
s_error = s.replace('\r\n', ',')
print(s_error)
# Line1
# Line2,Line3
print(repr(s_error))
# 'Line1\nLine2,Line3'
Es posible reemplazar múltiples códigos de nueva línea repitiendo replace(), pero no funcionará si el orden es incorrecto porque «\r\n» contiene «\n». El método que combina splitlines() y join() descrito anteriormente es más seguro porque no hay que preocuparse por los códigos de salto de línea.
s = 'Line1\nLine2\r\nLine3'
print(s.replace('\r\n', ',').replace('\n', ','))
# Line1,Line2,Line3
s_error = s.replace('\n', ',').replace('\r\n', ',')
print(s_error)
# ,Line3Line2
print(repr(s_error))
# 'Line1,Line2\r,Line3'
print(','.join(s.splitlines()))
# Line1,Line2,Line3
Utilice el método rstrip() para eliminar los códigos de salto de línea al final de una frase. rstrip() es un método para eliminar los caracteres de espacio en blanco (incluyendo los saltos de línea) en el extremo derecho de una cadena.
s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb
print(s.rstrip() + 'bbb')
# aaabbb
Imprimir la salida sin la nueva línea final
La función print() añade por defecto una nueva línea al final. Por lo tanto, si print() se ejecuta sucesivamente, cada resultado de salida se mostrará en una nueva línea.
print('a')
print('b')
print('c')
# a
# b
# c
Esto se debe a que el valor por defecto del argumento end de print(), que especifica la cadena a añadir al final, es el símbolo de la nueva línea.
Si no quiere una nueva línea al final, sólo tiene que poner el argumento end en una cadena vacía, y la salida se producirá sin una nueva línea al final.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
El argumento end puede ser cualquier cadena.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
Sin embargo, si quiere concatenar cadenas para la salida, es más fácil concatenar las cadenas originales que especificarlas en el argumento final de print(). Consulte el siguiente artículo.
- Artículos relacionados:Concatenar y unir cadenas en Python (operador +, join, etc.)