In Python, is it possible to escape newline characters when printing a string?

前端 未结 3 838
终归单人心
终归单人心 2020-11-27 05:25

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:

相关标签:
3条回答
  • 2020-11-27 05:47

    Simplest method: str_object.replace("\n", "\\n")

    The other methods are better if you want to show all escape characters, but if all you care about is newlines, just use a direct replace.

    0 讨论(0)
  • 2020-11-27 05:53

    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

    0 讨论(0)
  • 2020-11-27 05:55

    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

    0 讨论(0)
提交回复
热议问题