Remove n from triple quoted string in python

Question:

I have the following string:

string = """
Hello World
123
HelloWorld
"""

I want to clear all the line-breaks from the string in python.

I tried

string.strip()

But it’s not working as desired.

What I should do?

I’m using python 3.3

Thanks.

Asked By: Nir

||

Answers:

Simple str.replace:

string.replace('n', ' ')
Answered By: zero323

str.strip removes whitespace from the start and the end of the string.

>>> string
'nHello Worldn123nHelloWorldn'
>>> string.strip()
'Hello Worldn123nHelloWorld'

If you want to remove the new line characters inside of the string, you can replace them by something else using str.replace:

>>> string.replace('n', ' ')
' Hello World 123 HelloWorld '
Answered By: poke

The main question is already answered, but I would like to add that if you plan on using the individual lines you might be better off doing this –

string = """
Hello World
123
HelloWorld
"""
for line in string.strip().split('n'):
    print(line)
    # do something with the line

Output from above code –

Hello World
123
HelloWorld
Answered By: shad0w_wa1k3r

Use translate instead of replace for this kind of operation.

>> string.translate(None, "n")
Hello World123HelloWorld

You will realize how fast translate is when you work with big files.

Answered By: B.Mr.W.

I would like to point out that, depending on how that triple-quoted string is being used, you could avoid the issue entirely.

In Python triple-quoted strings, you can put a backslash (““) at the end of a line to ignore the line break. In other words, you can use it to put a line break at that spot in your code without making a line break in your string.

For example:

"""line 1 
line 2 
line 3"""

will actually become

line 1 line 2 line 3

if printed or written to some file or other output.

Using it this way can eliminate any need for a function to replace the line breaks, making your code clearer and cleaner.

EDIT:

If you’re using backslash line continuations like this, you can also use simple single-quoted strings the same way;

"line 1 
line 2 
line 3"

is also equivalent to

line 1 line 2 line 3
Answered By: Variadicism
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.