Các b
tiền tố biểu thị một bytes
literal chuỗi .
Nếu bạn thấy nó được sử dụng trong mã nguồn Python 3, thì biểu thức sẽ tạo một bytes
đối tượng , không phải một đối tượng Unicodestr
thông thường . Nếu bạn thấy nó được lặp lại trong trình bao Python của mình hoặc là một phần của danh sách, dict hoặc nội dung vùng chứa khác, thì bạn sẽ thấy một bytes
đối tượng được biểu diễn bằng ký hiệu này.
bytes
Các đối tượng về cơ bản chứa một chuỗi các số nguyên trong phạm vi 0-255, nhưng khi được biểu diễn, Python hiển thị các byte này dưới dạng mã ASCII để giúp dễ đọc nội dung của chúng hơn. Bất kỳ byte bên ngoài có thể in hàng loạt các ký tự ASCII được hiển thị như trình tự thoát (ví dụ \n
, \x82
vv). Ngược lại, bạn có thể sử dụng cả ký tự ASCII và trình tự thoát để xác định giá trị byte; đối với các giá trị ASCII, giá trị số của chúng được sử dụng (ví dụ: b'A'
== b'\x41'
)
Bởi vì một bytes
đối tượng bao gồm một chuỗi các số nguyên, bạn có thể tạo một bytes
đối tượng từ bất kỳ chuỗi số nguyên nào khác có giá trị trong phạm vi 0-255, như danh sách:
bytes([72, 101, 108, 108, 111])
và lập chỉ mục cho phép bạn sao lưu các số nguyên (nhưng cắt tạo ra một mới bytes
giá trị, vì ví dụ trên, value[0]
mang đến cho bạn 72
, nhưng value[:1]
là b'H'
như 72 là điểm mã ASCII cho các chữ cái viết hoa H ).
bytes
mô hình dữ liệu nhị phân , bao gồm cả văn bản được mã hóa . Nếu bytes
giá trị của bạn có chứa văn bản, trước tiên bạn cần giải mã nó bằng cách sử dụng codec chính xác. Ví dụ: nếu dữ liệu được mã hóa dưới dạng UTF-8, bạn có thể lấy str
giá trị Unicode với:
strvalue = bytesvalue.decode('utf-8')
Ngược lại, để chuyển từ văn bản trong một str
đối tượng sang bytes
bạn cần mã hóa . Bạn cần phải quyết định một bảng mã để sử dụng; mặc định là sử dụng UTF-8, nhưng những gì bạn sẽ cần phụ thuộc nhiều vào trường hợp sử dụng của bạn:
bytesvalue = strvalue.encode('utf-8')
Bạn cũng có thể sử dụng hàm tạo bytes(strvalue, encoding)
để làm tương tự.
Cả hai phương pháp giải mã và mã hóa đều có thêm một đối số để chỉ định cách xử lý lỗi .
Python 2, phiên bản 2.6 và 2.7 cũng hỗ trợ tạo các ký tự b'..'
chuỗi bằng cách sử dụng cú pháp ký tự chuỗi, để dễ dàng mã hoạt động trên cả Python 2 và 3.
bytes
các đối tượng là bất biến, giống như str
chuỗi. Sử dụng một bytearray()
đối tượng nếu bạn cần có giá trị byte có thể thay đổi.