Убрать "\ n" из многострочного укуса, кроме как в строке - PullRequest
0 голосов
/ 17 января 2019

Если у меня есть многострочная строка, которая содержит "\ 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 голосов
/ 17 января 2019

Вы должны убежать от новых строк.В этом случае вы можете просто сделать его необработанным строковым литералом:

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

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