b
Önek bir işaret bytes
dize .
Eğer görürseniz ifadesi yaratır, Python 3 kaynak kodu kullanılan bytes
nesne değil, normal bir Unicode str
nesnesi . Python kabuğunuzda veya bir listenin, diktenin veya diğer konteyner içeriklerinin parçası olarak yankılandığını görürseniz, bytes
bu gösterimi kullanarak temsil edilen bir nesne görürsünüz .
bytes
nesneler temelde 0-255 aralığında bir tamsayı dizisi içerir, ancak temsil edildiğinde, Python bu baytları içeriklerini okumayı kolaylaştırmak için ASCII kod noktaları olarak görüntüler . Dışında herhangi bir bayt yazdırılabilir ASCII karakter aralığında kaçış dizileri (örn olarak gösterilmiştir \n
, \x82
vb.) Tersine, bayt değerlerini tanımlamak için hem ASCII karakterlerini hem de kaçış dizilerini kullanabilirsiniz; ASCII değerleri için sayısal değerleri kullanılır (örneğin b'A'
== b'\x41'
)
Bir bytes
nesne bir tamsayı dizisinden oluştuğu bytes
için, 0-255 aralığındaki değerlere sahip diğer herhangi bir tamsayı dizisinden bir liste gibi bir nesne oluşturabilirsiniz:
bytes([72, 101, 108, 108, 111])
ve indeksleme Eğer tamsayılar geri verir (ama dilimleme yeni üretir bytes
değeri; yukarıdaki örneğin value[0]
verir 72
, ancak value[:1]
bir b'H'
72 harf için ASCII kod noktası olarak H ).
bytes
kodlanmış metin dahil olmak üzere ikili verileri modelleyin . Senin Eğer değer metin içeren gelmez, doğru codec kullanarak, bunun ilk şifresini çözmek gerekir. Veriler UTF-8 olarak kodlandıysa, örneğin aşağıdakilerle bir Unicode değeri elde edebilirsiniz :bytes
str
strvalue = bytesvalue.decode('utf-8')
Tersine, bir str
nesnedeki metinden gitmek bytes
için kodlamanız gerekir . Kullanacağınız bir kodlamaya karar vermelisiniz; varsayılan UTF-8 kullanmaktır, ancak ihtiyacınız olan şey kullanım durumunuza büyük ölçüde bağlıdır:
bytesvalue = strvalue.encode('utf-8')
bytes(strvalue, encoding)
Aynısını yapmak için yapıcıyı da kullanabilirsiniz .
Hem kod çözme hem de kodlama yöntemleri, hataların nasıl işleneceğini belirtmek için fazladan bir argüman alır .
Python 2, sürüm 2.6 ve 2.7 b'..'
, hem Python 2 hem de 3'te çalışan kodu kolaylaştırmak için dize değişmez sözdizimini kullanarak dize değişmezleri oluşturmayı da destekler .
bytes
nesneler, tıpkı str
dizeler gibi değişmezdir . Değiştirilebilir bir bayt değerine ihtiyacınız varsa bir bytearray()
nesne kullanın .