Znak '\ a' jest ASCII BEL character, Chr (7).
Aby wykonać konwersję w Pythonie 2:
from __future__ import print_function
a = '\\a'
c = a.decode('string-escape')
print(repr(a), repr(c))
wyjście
'\\a' '\x07'
A na przyszłość, w Pythonie 3:
a = '\\a'
b = bytes(a, encoding='ascii')
c = b.decode('unicode-escape')
print(repr(a), repr(c))
To daje identyczną wyjście do powyższy fragment.
W Pythonie 3, jeśli pracowali z bajtów obiektów chcesz zrobić coś takiego:
a = b'\\a'
c = bytes(a.decode('unicode-escape'), 'ascii')
print(repr(a), repr(c))
wyjściowy
b'\\a' b'\x07'
Jak wspomina Antti Haapala, to prosta strategia dla Pythona 3 nie zadziała, jeśli łańcuch źródłowy zawiera również znaki Unicode. W takim przypadku zobacz odpowiedź na bardziej niezawodne rozwiązanie.
'\\' jest po prostu sposobem na umieszczenie odwrotnego ukośnika w ciągu znaków. '\ a' oznacza, że uciekasz z' a'. Aby tego uniknąć, musisz uciec przed specjalnym znaczeniem odwrotnego ukośnika, umieszczając przed nim drugi ukośnik odwrotny. Python wypisuje go jako '\\ a', ale w rzeczywistości jest to tylko dwie litery: odwrócony ukośnik i" a ". –
spróbuj 'print (a)'. – inspectorG4dget
Czy używasz Python 2 lub Python 3? –