Печать неэкранированного пробела в оболочку

#python #escaping

#python #экранирование

Вопрос:

Рассмотрим эту строку кода Python:

 s = "This string has nr whitespace"
  

Как мне сделать

print s

дайте мне

This string has nr whitespace

вместо

 This string has
whitespace
  

как это происходит сейчас.

Ответ №1:

вам нужна необработанная строка?

 s = r"This string has nr whitespace"
  

или преобразовать специальные символы в его представление?

 repr(s)
  

Ответ №2:

  print s.encode('string-escape')
  

Ответ №3:

Вам нужна repr функция.

 print repr(s)
  

Комментарии:

1. Примечание: это также будет напечатано ' в начале и конце строки.

2. OP может также хотеть или не хотеть добавлять кавычки, которые repr() будут добавлены.

3. Это печатает 'This string has nr whitespace' с кавычками, поэтому вывод не совсем такой, какой указан в OP.

Ответ №4:

Вы можете использовать возможности форматирования Python для печати строки в ее «необработанном» виде:

 print "%r" % s
  

Вы также можете создать строку в необработанном виде следующим образом:

 s = r'This string has nr whitespace'
  

и Python обработает экранирование обратной косой черты, так что это именно то, что вы получаете:

 print s # outputs "This string has nr whitespace"