Подтвердить что ты не робот

В Python можно ли выводить символы новой строки при печати строки?

Я хочу, чтобы новая строка \n отображалась явно при печати строки, полученной из других источников. Поэтому, если строка "abc\ndef", я не хочу, чтобы это произошло:

>>> print(line)
abc
def

но вместо этого:

>>> print(line)
abc\ndef

Есть ли способ изменить печать или изменить аргумент или, возможно, другую функцию целиком, чтобы выполнить это?

4b9b3361

Ответ 1

Другой способ остановить питон с помощью escape-символов - использовать необработанную строку:

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

или

>>> string = "abc\ndef"
>>> print (repr(string))
>>> 'abc\ndef'

Единственный proplem с использованием repr() заключается в том, что он помещает вашу строку в одинарные кавычки, это может быть удобно, если вы хотите использовать цитату

Ответ 2

Просто закодируйте его с помощью кодека 'string_escape'.

>>> print "foo\nbar".encode('string_escape')
foo\nbar

В python3 'string_escape' стал unicode_escape. Кроме того, нам нужно быть немного более осторожным в отношении байтов /unicode, поэтому он включает в себя декодирование после кодирования:

>>> print("foo\nbar".encode("unicode_escape").decode("utf-8"))

ссылка unicode_escape

Ответ 3

Самый простой метод: str_object.replace("\n", "\\n")

Другие методы лучше, если вы хотите показать все escape-символы, но если все, о чем вы заботитесь, это символы новой строки, просто используйте прямую замену.