Python 2.7 использовать escape-символ и сохранять значение в переменной - PullRequest
0 голосов
/ 25 мая 2020

У меня очень странная проблема, в python 2.7: я использую paramiko, и вывод команды as sh выглядит следующим образом:

ABC | \x08ABCDEFG

Как видите за символом пробела следует символ возврата (\ x08). Когда я печатаю строку с помощью функции печати, ответ будет ABC |ABCDEFG, однако я хочу сохранить это в переменной.

Вещи, которые я пробовал:

  1. с использованием str(output): не работает строка совпадает с символом возврата

  2. использование output.encode('UTF-8') не работает.

  3. output.replace('\x08',''): Недействительно , так как я хочу, чтобы не было места

  4. print(string, file=''): параметр файла не поддерживается в python 2.7

Ответы [ 2 ]

0 голосов
/ 25 мая 2020

Вы можете использовать регулярное выражение для удаления \x08 и пробела из вашего вывода:

import re
string = "ABC | \x08ABCDEFG"
result = re.sub(' \\x08', '', string, count=0, flags=0)

Переменная result будет содержать новую строку без \x08 и без пробела перед \x08

Здесь вы можете проверить любое регулярное выражение:

https://regex101.com/

Более подробную информацию о регулярных выражениях в Python 2 можно найти здесь :

https://docs.python.org/2/library/re.html

0 голосов
/ 25 мая 2020

Если возвращаемая строка всегда содержит, вы можете сделать output.replace(' \x08', ''). Это заменило бы пробел и backspace. В противном случае вы можете найти индекс канала и заменить его, пока не найдете обратный пробел.

...