I want the newline \n
to show up explicitly when printing a string retrieved from elsewhere. So if the string is 'abc\ndef' I don't want this to happen:
>>> print(line) abc def
but instead this:
>>> print(line) abc\ndef
Is there a way to modify print, or modify the argument, or maybe another function entirely, to accomplish this?
In Python strings, the backslash "\" is a special character, also called the "escape" character. It is used in representing certain whitespace characters: "\t" is a tab, "\n" is a newline, and "\r" is a carriage return. Conversely, prefixing a special character with "\" turns it into an ordinary character.
The new line character in Python is \n . It is used to indicate the end of a line of text. You can print strings without adding a new line with end = <character> , which <character> is the character that will be used to separate the lines.
In Python, the built-in print function is used to print content to the standard output, which is usually the console. By default, the print function adds a newline character at the end of the printed content, so the next output by the program occurs on the next line.
A commonly used escape sequence is \n, which inserts a newline character into a string.
Just encode it with the 'string_escape'
codec.
>>> print "foo\nbar".encode('string_escape') foo\nbar
In python3, 'string_escape'
has become unicode_escape
. Additionally, we need to be a little more careful about bytes/unicode so it involves a decoding after the encoding:
>>> print("foo\nbar".encode("unicode_escape").decode("utf-8"))
unicode_escape reference
Another way that you can stop python using escape characters is to use a raw string like this:
>>> print(r"abc\ndef") abc\ndef
or
>>> string = "abc\ndef" >>> print (repr(string)) >>> 'abc\ndef'
the only proplem with using repr()
is that it puts your string in single quotes, it can be handy if you want to use a quote
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With