Remove all newlines from inside a string

PythonStringNewlineSubstitution

Python Problem Overview


I'm trying to remove all newline characters from a string. I've read up on how to do it, but it seems that I for some reason am unable to do so. Here is step by step what I am doing:

string1 = "Hello \n World"
string2 = string1.strip('\n')
print string2

And I'm still seeing the newline character in the output. I've tried with rstrip as well, but I'm still seeing the newline. Could anyone shed some light on why I'm doing this wrong? Thanks.

Python Solutions


Solution 1 - Python

strip only removes characters from the beginning and end of a string. You want to use replace:

str2 = str.replace("\n", "")
re.sub('\s{2,}', ' ', str) # To remove more than one space 

Solution 2 - Python

As mentioned by @john, the most robust answer is:

string = "a\nb\rv"
new_string = " ".join(string.splitlines())

Solution 3 - Python

Answering late since I recently had the same question when reading text from file; tried several options such as:

with open('verdict.txt') as f: 

First option below produces a list called alist, with '\n' stripped, then joins back into full text (optional if you wish to have only one text):

alist = f.read().splitlines()
jalist = " ".join(alist)

Second option below is much easier and simple produces string of text called atext replacing '\n' with space;

atext = f.read().replace('\n',' ')

It works; I have done it. This is clean, easier, and efficient.

Solution 4 - Python

strip() returns the string after removing leading and trailing whitespace. see doc

In your case, you may want to try replace():

string2 = string1.replace('\n', '')

Solution 5 - Python

or you can try this:

string1 = 'Hello \n World'
tmp = string1.split()
string2 = ' '.join(tmp)

Solution 6 - Python

This should work in many cases -

text = ' '.join([line.strip() for line in text.strip().splitlines() if line.strip()])
text = re.sub('[\r\n]+', ' ', text)

Solution 7 - Python

strip() returns the string with leading and trailing whitespaces(by default) removed.

So it would turn " Hello World " to "Hello World", but it won't remove the \n character as it is present in between the string.

Try replace().

str = "Hello \n World"
str2 = str.replace('\n', '')
print str2

Solution 8 - Python

If the file includes a line break in the middle of the text neither strip() nor rstrip() will not solve the problem,

>strip family are used to trim from the began and the end of the string

replace() is the way to solve your problem

>>> my_name = "Landon\nWO"
>>> print my_name
   Landon
   WO

>>> my_name = my_name.replace('\n','')
>>> print my_name
LandonWO

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLandonWOView Question on Stackoverflow
Solution 1 - PythonmipadiView Answer on Stackoverflow
Solution 2 - PythonChris SewellView Answer on Stackoverflow
Solution 3 - PythonjohnView Answer on Stackoverflow
Solution 4 - PythonsradackView Answer on Stackoverflow
Solution 5 - PythonjkalivasView Answer on Stackoverflow
Solution 6 - PythonjoydebaView Answer on Stackoverflow
Solution 7 - PythonBraden JagemanView Answer on Stackoverflow
Solution 8 - PythonibmstafaView Answer on Stackoverflow