从多行字符串中删除“\n”,内联时除外
Strip "\n" from a multiline sting, except when inline
如果我有一个包含“\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")'
]
(或多行字符串打印而不是列表打印,但格式相同)
有什么办法只能从多行字符串中去除 'trailing' 换行符?
如果有任何不清楚的地方,请告诉我,我会尽力解释。
编辑:更正了关于 splitlines()
和 strip()
的解释。
你必须转义你的换行符。在这种情况下,您可以将其设为原始字符串文字:
python_text = r"""
@commands.command()
def multi():
print("Three\nLines\nHere")
"""
print(python_text.splitlines())
>>>['', '@commands.command()', 'def multi():', ' print("Three\nLines\nHere")']
如果我有一个包含“\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")'
]
(或多行字符串打印而不是列表打印,但格式相同)
有什么办法只能从多行字符串中去除 'trailing' 换行符? 如果有任何不清楚的地方,请告诉我,我会尽力解释。
编辑:更正了关于 splitlines()
和 strip()
的解释。
你必须转义你的换行符。在这种情况下,您可以将其设为原始字符串文字:
python_text = r"""
@commands.command()
def multi():
print("Three\nLines\nHere")
"""
print(python_text.splitlines())
>>>['', '@commands.command()', 'def multi():', ' print("Three\nLines\nHere")']