Символ «\ а» является ASCII BEL character, CHR (7).
Чтобы выполнить преобразование в Python 2:
from __future__ import print_function
a = '\\a'
c = a.decode('string-escape')
print(repr(a), repr(c))
выход
'\\a' '\x07'
И для дальнейшего использования, в Python 3:
a = '\\a'
b = bytes(a, encoding='ascii')
c = b.decode('unicode-escape')
print(repr(a), repr(c))
Это дает идентичный выход на приведенный выше фрагмент.
В Python 3, если вы работали с байтами объекты вы могли бы сделать что-то вроде этого:
a = b'\\a'
c = bytes(a.decode('unicode-escape'), 'ascii')
print(repr(a), repr(c))
выход
b'\\a' b'\x07'
Как отмечает Антти Haapala, эта простая стратегия для Python 3 не будет работать, если строка источника содержит символы Unicode. В этом случае, пожалуйста, см. Его ответ для более надежного решения.
'\\' - это всего лишь способ поместить обратную косую черту в строку. '\ a' означает, что вы избегаете' a'. Чтобы этого избежать, вам нужно избежать особого значения обратной косой черты, поставив перед ним вторую обратную косую черту. Python печатает его как '\\ a', но на самом деле это всего два символа: обратная косая черта и' a'. –
попробуйте 'print (a)'. – inspectorG4dget
Вы используете Python 2 или Python 3? –