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.
This question is related to
python
string
newline
substitution
As mentioned by @john, the most robust answer is:
string = "a\nb\rv"
new_string = " ".join(string.splitlines())
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
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.
or you can try this:
string1 = 'Hello \n World'
tmp = string1.split()
string2 = ' '.join(tmp)
Source: Stackoverflow.com