18

Suppose my string is:

' Hai Hello\nGood eve\n'

How do I eliminate the '\n' in between and make a string print like :

 Hai Hello Good eve 

?

5
  • 11
    He is NOT asking something to the effect of what is the function to replace string. This cannot be directly looked up in the manual. If everybody could look up the manual, there would not be stackoverflow! Commented Feb 4, 2009 at 12:58
  • 1
    From looking at the layout of the question, I think the OP wants to know how to render a string with newlines, but didn't read the formatting guidelines... and used several question marks. Commented Feb 4, 2009 at 13:10
  • From the title I thought this was about sys.stdout.write() style answers, which is very hard to get from the manual. string replace() should however have been discoverable from the manual. Commented Feb 4, 2009 at 13:15
  • 2
    Click on the profile for rejinacm. There are at least 30 of the 34 questions which are trivially solved by opening the Python doco pages. This is moving beyond a n00b thing into a "plzsendtehcodez" thing. The first dozen questions gave the n00b a break. Commented Feb 4, 2009 at 14:02
  • he's not asking for the replace method. he wants to have string with several lines without explicitly putting \n for every line. Commented May 2, 2009 at 8:13

8 Answers 8

24

If you don't want the newline at the end of the print statement:

import sys
sys.stdout.write("text")
Sign up to request clarification or add additional context in comments.

1 Comment

I think you should also include what is asked for, so that your answer can be read in isolation. Or at least you should include a reference to the most appropriate other answer.
21

You can use the replace method:

>>> a = "1\n2"
>>> print a
1
2
>>> a = a.replace("\n", " ")
>>> print a
1 2

Comments

11

In Python 2.6:

print "Hello.",
print "This is on the same line"

In Python 3.0

print("Hello", end = " ")
print("This is on the same line")

Comments

5

I realize this is a terribly old post, but I just ran into this also and wanted to add to it for clarity. What the original user is asking, I believe, is how to get the OS to interpret the string "some text\nsome more text" as:

some text

some more text

Instead of just printing:

"some text\nsome more text"

and the answer is it is already interpreting. In ubuntu I ran into the problem of it escaping the newline characters when putting it into the string without me asking it to. So the string:

"some text\nsome more text"

is in fact

"some text\\nsome more text"

All that is required is to use the mystring.replace("\\\n", "\n") and the desired output will be achieved. Hope this is clear and helps some future person.

1 Comment

Almost! I think you only need one escape character. So it should be "\\n" instead of "\\\n".
3

Add a comma after "print":

print "Hai Hello",
print "Good eve",

Altho "print" is gone in Python 3.0

1 Comment

print isn't "gone" in Python 3; rather, it is changed from a statement to a function call.
2

Way old post but nobody seemed to successfully answer your question. Two possible answers:

First, either your string is actually Hai Hello\\\\nGood eve\\\\n printing as Hai Hello\\nGood eve\\n due to the escaped \\\\. Simple fix would be mystring.replace("\\\\n","\\n") (See http://docs.python.org/reference/lexical_analysis.html#string-literals)

Or, your string isn't a string and possibly a tuple. I just had a similar error when I thought I had a string and never noticed how it was printing as it was a long string. Mine was printing as:

("Lorem ipsum dolor sit amet, consectetur adipiscing elit.\nEtiam orci felis, pulvinar id vehicula nec, iaculis eget quam.\nNam sapien eros, hendrerit et ullamcorper nec, mattis at ipsum.\nNulla nisi ante, aliquet nec fermentum non, faucibus vel odio.\nPraesent ac odio vel metus condimentum tincidunt sed vitae magna.\nInteger nulla odio, sagittis id porta commodo, hendrerit vestibulum risus.\n...,"")

Easy to miss the brackets at the start and end and just notice the \n's. Printing mystring[0] should solve this (or whatever index it is in the list/tuple etc).

Comments

1
>>> 'Hai Hello\nGood eve\n'.replace('\n', ' ')
'Hai Hello Good eve '

Comments

0

Not sure if this is what you're asking for, but you can use the triple-quoted string:

print """Hey man
And here's a new line

you can put multiple lines inside this kind of string
without using \\n"""

Will print:

Hey man
And here's a new line

you can put multiple lines inside this kind of string
without using \n

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.