bytes.hex() și bytes.fromhex() în Python

Bytes Python 3.5+ (sep: 3.8+)

Transformă octeții în text hexazecimal și invers.

Sintaxă
octeti.hex([sep[, bytes_per_sep]])
bytes.fromhex(text)

Ce face bytes.hex() și bytes.fromhex()

hex() scrie fiecare octet ca două cifre hexazecimale. Din Python 3.8 poți adăuga un separator între octeți (sau între grupuri de octeți, cu bytes_per_sep). bytes.fromhex() face operația inversă și ignoră spațiile din text.

Sunt utile pentru afișarea sumelor de control (hash-uri), a adreselor MAC sau a datelor binare din protocoale.

Parametri

Parametru Descriere
sep Opțional. Separatorul dintre octeți (un caracter).
bytes_per_sep Opțional. Câți octeți într-un grup.
text Pentru fromhex: textul hexazecimal.

Ce returnează

hex: un text. fromhex: bytes.

Exemple

Exemplul 1: Conversii în ambele sensuri

date = "Iași".encode()
print(date.hex())
print(date.hex(" "))
print(bytes.fromhex("49 61 c8 99 69").decode())
mac = bytes([0x00, 0x1A, 0x2B, 0x3C, 0x4D, 0x5E])
print(mac.hex(":"), mac.hex("-", 2))

Rezultat

4961c89969
49 61 c8 99 69
Iași
00:1a:2b:3c:4d:5e 001a-2b3c-4d5e

Greșeli frecvente

  • Dai lui fromhex() un text cu prefixul 0x sau cu număr impar de cifre și primești ValueError.

Comenzi înrudite