В Python можно ли выводить символы новой строки при печати строки?
Я хочу, чтобы новая строка \n
отображалась явно при печати строки, полученной из других источников. Поэтому, если строка "abc\ndef", я не хочу, чтобы это произошло:
>>> print(line)
abc
def
но вместо этого:
>>> print(line)
abc\ndef
Есть ли способ изменить печать или изменить аргумент или, возможно, другую функцию целиком, чтобы выполнить это?
Ответы
Ответ 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-символы, но если все, о чем вы заботитесь, это символы новой строки, просто используйте прямую замену.