bÖnek bir işaret bytesdize .
Eğer görürseniz ifadesi yaratır, Python 3 kaynak kodu kullanılan bytesnesne değil, normal bir Unicode strnesnesi . Python kabuğunuzda veya bir listenin, diktenin veya diğer konteyner içeriklerinin parçası olarak yankılandığını görürseniz, bytesbu gösterimi kullanarak temsil edilen bir nesne görürsünüz .
bytesnesneler 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, \x82vb.) 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 bytesnesne bir tamsayı dizisinden oluştuğu bytesiç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 bytesdeğeri; yukarıdaki örneğin value[0]verir 72, ancak value[:1]bir b'H'72 harf için ASCII kod noktası olarak H ).
byteskodlanmış 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 :bytesstr
strvalue = bytesvalue.decode('utf-8')
Tersine, bir strnesnedeki metinden gitmek bytesiç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 .
bytesnesneler, tıpkı strdizeler gibi değişmezdir . Değiştirilebilir bir bayt değerine ihtiyacınız varsa bir bytearray()nesne kullanın .