Byte để liệt kê python 3
Có khả năng bạn đang tìm cách chuyển đổi byte thành chuỗi vì bạn không biết chúng là gì. Trước khi bắt đầu chuyển đổi, trước tiên chúng ta hãy xem nhanh byte là gì Show
Tại sao lại là byte?Máy tính không hiểu khái niệm “văn bản” hoặc “số” như là. Điều này là do máy tính hoạt động trên các bit, nghĩa là 0 và 1 Lưu trữ dữ liệu vào máy tính xảy ra bằng cách sử dụng các nhóm bit, còn được gọi là byte. Thông thường, có 8 bit trong một byte. Nhưng điều này có thể khác nhau tùy thuộc vào hệ thống bạn đang sử dụng Chuỗi byte trong PythonTrong Python, chuỗi byte là một chuỗi byte mà máy tính hiểu được nhưng con người thì không Chuỗi là một dãy các ký tự và là thứ mà con người chúng ta có thể hiểu được nhưng không thể lưu trữ trực tiếp trong máy tính Đây là lý do tại sao bất kỳ chuỗi nào cũng cần được chuyển đổi thành chuỗi byte trước khi máy tính có thể sử dụng nó Trong Python, đối tượng bytes là biểu diễn byte của chuỗi. Một đối tượng byte có tiền tố là chữ 'b' Ví dụ, hãy xem hai biến này name1 = 'Alice' name2 = b'Alice' Nơi đây
Bạn có thể xác minh điều này bằng cách in ra các loại dữ liệu của các biến này name1 = 'Alice' name2 = b'Alice' print(type(name1)) print(type(name2)) đầu ra Như tôi đã đề cập trước đó, chuỗi byte là thứ khó hiểu. Trong đoạn mã trên, điều này không rõ ràng vì bạn chỉ có thể đọc b'Alice' rất rõ ràng Chuỗi byte so với Chuỗi trong PythonĐể thấy sự khác biệt chính giữa chuỗi byte và chuỗi, hãy in các từ theo từng ký tự Đầu tiên, hãy thực hiện biến name1 name1 = 'Alice' name2 = b'Alice' for c in name1: print(c) đầu ra A l i c e Bây giờ, hãy in từng byte trong đối tượng name2 bytes name1 = 'Alice' name2 = b'Alice' for c in name2: print(c) đầu ra 65 108 105 99 101 Ở đây bạn có thể thấy không có cách nào để bạn biết ý nghĩa của những con số đó. Những con số đó là giá trị byte của các ký tự trong một chuỗi. Một cái gì đó mà một máy tính có thể hiểu được Để làm rõ thêm một điều nữa, hãy xem điều gì sẽ xảy ra nếu chúng ta in đối tượng bytes name2 nguyên trạng name1 = 'Alice' name2 = b'Alice' print(name2) đầu ra Alice0 Là sự ngạc nhiên của bạn, nó rõ ràng nói "Alice". Điều này không quá khó để đọc, phải không? Lý do tại sao chuỗi byte in ra dưới dạng chuỗi có thể đọc được là bởi vì những gì bạn thấy thực sự là biểu diễn chuỗi của đối tượng byte Python làm điều này để thuận tiện cho nhà phát triển Nếu không có biểu diễn chuỗi đặc biệt cho đối tượng byte, việc in byte sẽ vô nghĩa Dù sao, bây giờ bạn đã hiểu đối tượng bytes trong Python là gì và nó khác với đối tượng str như thế nào Bây giờ, hãy xem cách chuyển đổi giữa byte và chuỗi 1. Hàm giải mã ()Với đối tượng bytes, bạn có thể sử dụng phương thức decode() tích hợp để chuyển đổi byte thành chuỗi Bạn cũng có thể chuyển loại mã hóa cho hàm này làm đối số Ví dụ: hãy sử dụng mã hóa UTF-8 để chuyển đổi byte thành chuỗi Alice1 đầu ra Alice2 2. Hàm str()Một cách tiếp cận khác để chuyển đổi byte thành chuỗi là sử dụng hàm str() tích hợp sẵn Phương thức này thực hiện chính xác như phương thức decode() trong ví dụ trước Ví dụ Alice3 đầu ra Alice2 Có lẽ nhược điểm duy nhất của phương pháp này là khả năng đọc mã Nếu bạn so sánh hai dòng này Alice5 Bạn có thể thấy phần sau rõ ràng hơn về việc giải mã các byte thành một chuỗi 3. Chức năng giải mã codec()Python cũng có một mô-đun codec tích hợp để giải mã và mã hóa văn bản Mô-đun này cũng có chức năng giải mã () riêng. Bạn có thể sử dụng chức năng này để chuyển đổi byte thành chuỗi (và ngược lại) Ví dụ Alice6 đầu ra Alice2 4. Chức năng giải mã gấu trúc ()Nếu bạn đang làm việc với gấu trúc và bạn có khung dữ liệu bao gồm các byte, bạn có thể dễ dàng chuyển đổi chúng thành chuỗi bằng cách gọi phương thức str. hàm giải mã () trên một cột Ví dụ Alice8 đầu ra Alice9 5. bản đồ () Chức năng. Chuyển đổi danh sách byte thành chuỗiTrong Python, một chuỗi là một nhóm ký tự Mỗi ký tự Python được liên kết với một giá trị Unicode, là một số nguyên Như vậy, bạn có thể chuyển đổi một số nguyên thành một ký tự trong Python Để làm điều này, bạn có thể gọi hàm chr() tích hợp trên một số nguyên Đưa ra một danh sách các số nguyên, bạn có thể sử dụng hàm map() để ánh xạ từng số nguyên thành một ký tự Đây là giao diện của nó trong mã name1 = 'Alice' name2 = b'Alice'0 đầu ra ________số 8Đoạn mã này
Để tìm hiểu thêm về hàm map() trong Python, vui lòng đọc bài viết này Hãy cẩn thận với việc mã hóaCó hàng tá mã hóa byte thành chuỗi ngoài kia Trong hướng dẫn này, chúng tôi chỉ sử dụng mã hóa UTF-8, đây là loại mã hóa phổ biến nhất UTF-8 cũng là kiểu mã hóa mặc định trong Python. Tuy nhiên, mã hóa UTF-8 không phải lúc nào cũng đúng Ví dụ name1 = 'Alice' name2 = b'Alice'2 đầu ra name1 = 'Alice' name2 = b'Alice'3 Lỗi này có nghĩa là không có ký tự nào trong bảng mã UTF-8 tương ứng với các byte trong chuỗi Nói cách khác, bạn nên sử dụng một mã hóa khác Bạn có thể sử dụng một mô-đun như chardet để phát hiện mã hóa ký tự. (Lưu ý rằng mô-đun này không được duy trì, nhưng hầu hết thông tin bạn tìm hiểu về mô-đun này vẫn có thể áp dụng được. ) Tuy nhiên, không có phương pháp nào là hoàn hảo 100%. Mô-đun này cung cấp cho bạn dự đoán tốt nhất về mã hóa và xác suất liên quan đến nó Dù sao, giả sử chuỗi byte trên có thể được giải mã bằng cách sử dụng mã hóa latin1 cũng như mã hóa iso_8559_5 Bây giờ hãy thực hiện chuyển đổi name1 = 'Alice' name2 = b'Alice'4 đầu ra name1 = 'Alice' name2 = b'Alice'5 Lần này không có lỗi. Thay vào đó, nó hoạt động với cả hai mã hóa và tạo ra một kết quả khác Vì vậy, hãy cẩn thận với các mã hóa Nếu bạn gặp lỗi khi thực hiện chuyển đổi, điều đầu tiên bạn cần làm là tìm ra mã hóa được sử dụng. Sau đó, bạn nên sử dụng mã hóa cụ thể đó để mã hóa/giải mã các giá trị của mình để hiểu đúng Sự kết luậnHôm nay bạn đã học cách chuyển đổi byte thành chuỗi trong Python Tóm lại, có rất nhiều cách để chuyển đổi byte thành chuỗi trong Python
Theo mặc định, mã hóa ký tự Python thường là UTF-8 Tuy nhiên, điều này không phải lúc nào cũng áp dụng được. Cố gắng mã hóa một byte không phải UTF-8 bằng UTF-8 sẽ gây ra lỗi. Trong tình huống này, bạn nên xác định đúng bảng mã ký tự trước khi mã hóa/giải mã. Bạn có thể sử dụng một mô-đun như chardet để làm điều này Byte trong python3 là gì?Hàm Python byte()
. Sự khác biệt giữa bytes() và bytearray() là bytes() trả về một đối tượng không thể sửa đổi và bytearray() trả về một đối tượng có thể sửa đổi. It can convert objects into bytes objects, or create empty bytes object of the specified size. The difference between bytes() and bytearray() is that bytes() returns an object that cannot be modified, and bytearray() returns an object that can be modified.
Có loại byte nào trong Python không?Python hỗ trợ nhiều loại để lưu trữ chuỗi. Có sáu loại trình tự. chuỗi, chuỗi byte (đối tượng byte) , mảng byte (đối tượng bytearray), danh sách, bộ dữ liệu và đối tượng phạm vi.
Các byte có thể lặp lại trong Python không?Lặp lại chuỗi byte Python
. Do đó, chúng ta có thể sử dụng lặp lại nó bằng kỹ thuật lặp . Trong ví dụ sau, chúng ta sẽ sử dụng vòng lặp for để lặp qua các byte của đối tượng bytes trong Python. Các giá trị byte là các biểu diễn số nguyên. |