How can I remove a trailing newline?


Question

What is the Python equivalent of Perl's chomp function, which removes the last character of a string if it is a newline?

1
1539
6/18/2019 10:56:36 AM

Try the method rstrip() (see doc Python 2 and Python 3)

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

Python's rstrip() method strips all kinds of trailing whitespace by default, not just one newline as Perl does with chomp.

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

To strip only newlines:

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

There are also the methods lstrip() and strip():

>>> 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'
1672
5/11/2017 7:54:59 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon