Il y a beaucoup de messages sur le message d'erreur ValueError: invalid \x escape
, cependant, je suis toujours coincé, même si c'est un problème simple. J'essaie de construire une ligne d'octets à partir de différents blocs de construction. A la fin, il doit ressembler à:Ecriture de l'indication hexadécimale ' x', tout en évitant "ValueError: invalid x escape"
b'Kh\x10\x10\x10'
donc deux symboles ascii au début et à trois valeurs hexadécimaux. J'ai déjà le K
(de dict_birdnumbers[int(birdname)]
) et le '10'
(finangle
) en tant que variables. Je l'ai essayé avec une chaîne littérale brute
hex = r'\x'
line3 = dict_birdnumbers[int(birdname)] + 'h' + hex + finangle + hex + finangle + hex + finangle
print(line3.encode())
J'utilise le .encode()
pour faire en sorte que c'est un bytestring. Cependant, le résultat obtenu est
b'Kh\\x10\\x10\\x10'
donc une barre oblique inverse trop. Si je supprime la barre oblique inverse dans hex
, je reçois seulement b'Khx10x10x10'
. Si j'utilise une chaîne normale comme hex = '\x'
j'obtiens le message d'erreur ValueError: invalid \x escape
. Que puis-je faire?
Exactement ce que je cherchais! Merci! – Tobitobitobi