简体   繁体   中英

How to print a string without including '\n' in Python

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 

?

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

import sys
sys.stdout.write("text")

You can use the replace method:

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

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")

Add a comma after "print":

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

Altho "print" is gone in Python 3.0

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.

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).

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM