Remove newline from string python

  1. HowTo
  2. Python How-To's
  3. Remove Newline From String in Python

Created: May-09, 2021

  1. Use the strip() Function to Remove a Newline Character From the String in Python
  2. Use the replace() Function to Remove a Newline Character From the String in Python
  3. Use the re.sub() Function to Remove a Newline Character From the String in Python

Strings in Python can be defined as the cluster of Unicode characters enclosed in single or double quotes.

Like other popular programming languages, Python also has a newline character indicated by \n. It is essentially used to trace the culmination of a line and the emergence of a new line in a string.

Newline characters can also be used in f-strings. Moreover, according to the Python documentation, print statements add a newline character at the end of a string by default.

This tutorial will discuss different methods to remove a newline character from a string in Python.

Use the strip() Function to Remove a Newline Character From the String in Python

The strip() function is used to remove both trailing and leading newlines from the string that it is being operated on. It also removes the whitespaces on both sides of the string.

The following code uses the strip() function to remove a newline character from a string in Python.

str1 = "\n Starbucks has the best coffee \n"
newstr = str1.strip()
print(newstr)

Output:

Starbucks has the best coffee

The rstrip() function can be used instead of the strip function if there is only the need to remove trailing newline characters. The leading newline characters are not affected by this function and remain as they are.

The following code uses the rstrip() function to remove a newline character from a string in Python.

str1 = "\n Starbucks has the best coffee \n"
newstr = str1.rstrip()
print(newstr)

Output:


Starbucks has the best coffee

Use the replace() Function to Remove a Newline Character From the String in Python

Also known as the brute force method, It uses the for loop and replace() function. We look for the newline character \n as a string inside a string, and manually replace that from each string with the help of the for loop.

We use a List of strings and implement this method on it. Lists are one of the four built-in datatypes provided in Python and can be utilized to stock multiple items in a single variable.

The following code uses the replace() function to remove a newline character from a string in Python.

list1 = ["Starbucks\n", "has the \nbest", "coffee\n\n "]
rez = []

for x in list1:
    rez.append(x.replace("\n", ""))

print("New list : " + str(rez))

Output:

New list : ['Starbucks', 'has the best', 'coffee ']

Use the re.sub() Function to Remove a Newline Character From the String in Python

The re module needs to import to the python code to use the re.sub() function

The re module is a built-in module in Python, which deals with regular expression. It helps in performing the task of searching for a pattern in a given particular string.

The re.sub() function is essentially used to take a substring and replace its occurrence in the string with another substring.

The following code uses the re.sub() function to remove a newline character from a string in Python.

#import the regex library
import re

list1 = ["Starbucks\n", "has the \nbest", "coffee\n\n "]
  
rez = []
for sub in list1:
    rez.append(sub.replace("\n", ""))
          
print("New List : " + str(rez))

Output:

New List : ['Starbucks', 'has the best', 'coffee ']

Write for us

DelftStack articles are written by software geeks like you. If you also would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

Related Article - Python String

  • Remove Commas From String in Python
  • Check a String Is Empty in a Pythonic Way
  • Convert a String to Variable Name in Python
  • Remove Whitespace From a String in Python
  • I'm bubbling up my regular expression based answer from one I posted earlier in the comments of another answer. I think using re is a clearer more explicit solution to this problem than str.rstrip.

    >>> import re
    

    If you want to remove one or more trailing newline chars:

    >>> re.sub(r'[\n\r]+$', '', '\nx\r\n')
    '\nx'
    

    If you want to remove newline chars everywhere (not just trailing):

    >>> re.sub(r'[\n\r]+', '', '\nx\r\n')
    'x'
    

    If you want to remove only 1-2 trailing newline chars (i.e., \r, \n, \r\n, \n\r, \r\r, \n\n)

    >>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n\r\n')
    '\nx\r'
    >>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n\r')
    '\nx\r'
    >>> re.sub(r'[\n\r]{1,2}$', '', '\nx\r\n')
    '\nx'
    

    I have a feeling what most people really want here, is to remove just one occurrence of a trailing newline character, either \r\n or \n and nothing more.

    >>> re.sub(r'(?:\r\n|\n)$', '', '\nx\n\n', count=1)
    '\nx\n'
    >>> re.sub(r'(?:\r\n|\n)$', '', '\nx\r\n\r\n', count=1)
    '\nx\r\n'
    >>> re.sub(r'(?:\r\n|\n)$', '', '\nx\r\n', count=1)
    '\nx'
    >>> re.sub(r'(?:\r\n|\n)$', '', '\nx\n', count=1)
    '\nx'
    

    (The ?: is to create a non-capturing group.)

    (By the way this is not what '...'.rstrip('\n', '').rstrip('\r', '') does which may not be clear to others stumbling upon this thread. str.rstrip strips as many of the trailing characters as possible, so a string like foo\n\n\n would result in a false positive of foo whereas you may have wanted to preserve the other newlines after stripping a single trailing one.)

    Can you strip \n in Python?

    Trim Methods - strip() In Python, the stripping methods are capable of removing leading and trailing spaces and specific characters. The leading and trailing spaces, include blanks, tabs ( \t ), carriage returns ( \r , \n ) and the other lesser-known whitespace characters that can be found here.

    How do you remove line breaks from a string?

    Use the String. replace() method to remove all line breaks from a string, e.g. str. replace(/[\r\n]/gm, ''); . The replace() method will remove all line breaks from the string by replacing them with an empty string.

    How do you remove n from a file in Python?

    Python File I/O: Remove newline characters from a file.
    Sample Solution:.
    Python Code: def remove_newlines(fname): flist = open(fname).readlines() return [s.rstrip('\n') for s in flist] print(remove_newlines("test.txt")) ... .
    Flowchart:.
    Python Code Editor: ... .
    Have another way to solve this solution?.