Ce face bytes() și bytearray()
bytes este o secvență imutabilă de octeți. Se scrie cu prefixul b: b"abc", unde caracterele non-ASCII se dau ca \x... Un element accesat prin index este un număr întreg (b"A"[0] este 65).
bytes() se construiește dintr-o listă de numere, dintr-un text plus codificare, sau ca n octeți zero. bytearray are aceleași forme, dar este modificabil: poți schimba octeți, adăuga (append, extend) sau șterge.
bytes are aproape toate metodele lui str (split, replace, startswith…), care lucrează pe octeți. Fișierele deschise cu modul 'rb' returnează bytes.
Parametri
| Parametru | Descriere |
|---|---|
iterabil / text, encoding / n |
Numerele octeților, un text cu codificarea lui, sau numărul de octeți zero. |
Ce returnează
Un obiect bytes (imutabil) sau bytearray (modificabil).
Exemple
Exemplul 1: Moduri de a crea bytes
print(b"ABC", b"ABC"[0], list(b"ABC"))
print(bytes([72, 105]))
print(bytes("Iași", "utf-8"))
print(bytes(3))
Rezultat
b'ABC' 65 [65, 66, 67]
b'Hi'
b'Ia\xc8\x99i'
b'\x00\x00\x00'
Exemplul 2: bytearray modificabil
date = bytearray(b"salut")
date[0] = ord("S")
date.extend(b"!")
print(date, bytes(date))
try:
b"salut"[0] = 83
except TypeError as e:
print("bytes:", e)
Rezultat
bytearray(b'Salut!') b'Salut!'
bytes: 'bytes' object does not support item assignment
Exemplul 3: Citirea unui fișier binar
with open("date.bin", "wb") as f:
f.write(bytes([0x89, 0x50, 0x4E, 0x47]))
with open("date.bin", "rb") as f:
antet = f.read()
print(antet, antet[1:] == b"PNG")
Rezultat
b'\x89PNG' True
Greșeli frecvente
- Amesteci
strșibytes:b"a" + "b"dăTypeError: can't concat str to bytes. Codifică textul sau decodifică octeții. - Scrii diacritice direct într-un literal bytes:
b"ș"dăSyntaxError. Folosește"ș".encode().
Comenzi înrudite
str.encode() și bytes.decode(): Transformă textul în octeți (encode) și octeții înapoi în text (decode), după o codificare.bytes.hex() și bytes.fromhex(): Transformă octeții în text hexazecimal și invers.memoryview(): Oferă acces la memoria unui obiect binar (bytes, bytearray) fără să o copieze.open() și with: Deschide un fișier pentru citire sau scriere; cu with, fișierul este închis automat.