¿Cómo puedo eliminar una nueva línea final?

Resuelto asked hace 16 años • 0 respuestas

¿Cómo puedo eliminar el último carácter de una cadena si es una nueva línea?

"abc\n"  -->  "abc"
 avatar Nov 09 '08 01:11
Aceptado

Pruebe el método rstrip()(consulte los documentos Python 2 y Python 3 )

>>> 'test string\n'.rstrip()
'test string'

El método de Python rstrip()elimina todo tipo de espacios en blanco finales de forma predeterminada, no solo una nueva línea como lo hace Perl con chomp.

>>> 'test string \n \r\n\n\r \n\n'.rstrip()
'test string'

Para eliminar sólo nuevas líneas:

>>> 'test string \n \r\n\n\r \n\n'.rstrip('\n')
'test string \n \r\n\n\r '

Además de rstrip(), también existen los métodos strip()y lstrip(). Aquí hay un ejemplo con los tres:

>>> s = "   \n\r\n  \n  abc   def \n\r\n  \n  "
>>> s.strip()
'abc   def'
>>> s.lstrip()
'abc   def \n\r\n  \n  '
>>> s.rstrip()
'   \n\r\n  \n  abc   def'
Markus Jarderot avatar Nov 08 '2008 18:11 Markus Jarderot

Y yo diría que la forma "pitónica" de obtener líneas sin caracteres de nueva línea es dividir líneas().

>>> text = "line 1\nline 2\r\nline 3\nline 4"
>>> text.splitlines()
['line 1', 'line 2', 'line 3', 'line 4']
Ryan Ginstrom avatar Nov 09 '2008 05:11 Ryan Ginstrom