【问题标题】:Including \n in a string in python [duplicate]在python中的字符串中包含\ n [重复]
【发布时间】:2015-09-01 12:08:02
【问题描述】:

如何在 python 中的字符串中转义 \n。

如何在 python 中将此字符串 "abc\ndef" 作为单个输入写入标准输入

Sys.stdout.write("abc\ndef")

电流输出

import sys

>>> sys.stdout.write("abc\ndef")
abc
def

我希望它是abc\ndef

【问题讨论】:

  • 尝试转义反斜杠\\n
  • @m02ph3u5,如果这是答案,请将其作为答案发布:-)
  • @Kevin 这是一个显而易见的答案,甚至感觉不像是一个答案:)
  • 无论如何都要回答:D
  • 另见关于字符串文字的文档,其中包括这些反斜杠转义序列的表格:docs.python.org/3/reference/…

标签: python stdout stdin sys


【解决方案1】:

您应该转义反斜杠,以免它本身被视为转义字符:

Sys.stdout.write("abc\\ndef")

背景

反斜杠\ 告诉解析器下一个字符是特殊的,必须区别对待。这就是为什么\n 不会打印为\n 而是作为换行符。但是我们如何写一个反斜杠呢?我们也需要对其进行转义,导致\\ 用于单个反斜杠,\\n 用于输出\n

Docs here,还有see this SO question

或者,您可以使用“原始”字符串,即在字符串前加上 r,以禁用解释转义序列是您的字符串:

Sys.stdout.write(r"abc\ndef")

【讨论】:

    【解决方案2】:

    作为转义反斜杠的替代方法,您可以使用原始字符串文字完全禁用反斜杠转义:

    >>> print(r"abc\ndef")
    abc\ndef
    

    【讨论】:

    • 如果它是最后一个字符,您仍然需要反斜杠转义反斜杠,例如r'test\\'.
    猜你喜欢
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2013-09-12
    • 2021-06-17
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多