从多行字符串中删除“ \ n”,但内联时除外

时间:2019-01-17 00:06:18

标签: python python-3.x string newline

如果我有一个多行字符串,其中包含“ \ n”作为文本本身的一部分,例如:

python_text = """
@commands.command()
def multi():
    print("Three\nLines\nHere")
"""

如何删除除文本本身之外的所有换行符?我尝试使用splitlines()创建一个列表,但是多行字符串也将在文本本身的\n上拆分。出于相同的原因,无法将splitlines(True)strip()结合使用。

print(python_text.splitlines())

输出(格式化):

[
'@commands.command()', 
'def multi():', 
'    print("Three', 
'Lines', 
'Here")'
]

我想要的输出是:

[
'@commands.command()', 
'def multi():', 
'    print("Three\nLines\nHere")'
]

(或多行字符串打印而不是列表打印,但格式相同)

有什么办法只能从多行字符串中去除“尾随”换行符吗? 如果有任何不清楚的地方,请告诉我,我将尝试进一步解释。

编辑:更正了关于splitlines()strip()的解释。

1 个答案:

答案 0 :(得分:3)

您必须转义换行符。在这种情况下,您可以将其设为原始字符串文字:

python_text = r"""
@commands.command()
def multi():
    print("Three\nLines\nHere")
"""

print(python_text.splitlines())
>>>['', '@commands.command()', 'def multi():', '    print("Three\\nLines\\nHere")']