Python chuyển đổi thành mảng byte

Cho một chuỗi byte. Nhiệm vụ là viết chương trình Python để chuyển byte chuỗi này thành danh sách các số nguyên.  

Phương pháp 1. Bằng cách sử dụng hàm list()

Hàm list() được sử dụng để tạo danh sách từ iterable đã chỉ định được lấy làm tham số của nó

cú pháp

danh sách ([có thể lặp lại])

Thông số. Hàm này chấp nhận một tham số duy nhất được minh họa bên dưới

  • lặp đi lặp lại. Đây là trình tự được chỉ định sẽ được tạo thành một danh sách khác

Giá trị trả về. Hàm này trả về một danh sách mới được tạo từ iterable đã cho được truyền dưới dạng đối số của nó

Ví dụ. Chương trình Python chuyển chuỗi byte thành danh sách các số nguyên

Python3




1
8

1
9

1
0

 

1
1

1
2
1
3
1
4
1
0

 

1
1

1
2

1
3

1
4

1
5
1
6
1
7
1
8

đầu ra

[71, 70, 71]

Phương pháp 2. Bằng cách sử dụng hàm for loop và ord()

Hàm ord() được sử dụng để trả về số đại diện cho mã Unicode của một ký tự byte được chỉ định

cú pháp

thứ tự (ký tự)

Thông số. Hàm này chấp nhận một tham số duy nhất được minh họa bên dưới

  • nhân vật. Đây là chuỗi byte được chỉ định

Giá trị trả về. Hàm này trả về số đại diện cho mã Unicode của một ký tự byte được chỉ định

Ví dụ. Chương trình Python chuyển chuỗi byte thành danh sách các số nguyên

Python3




1
8

1
9

1
0

 

1
02

1
03
1
3
1
05

 

________ 106 ________ 23 ________ 108

 

1
09

1
80

________ 181 ________ 182 ________ 183 ________ 184

 

1
85
1
86

1
85
1
88

1
85
1
90

1
85
1
92
1
93
1
6
1
82
1
96

 

1
97

1
5
1
99

đầu ra

[71, 70, 71, 32, 105, 115, 32, 97, 32, 67, 83, 32, 80, 111, 114, 116, 97, 108]

Phương pháp 3. Bằng cách sử dụng hàm from_bytes()

Hàm from_bytes() được sử dụng để chuyển đổi chuỗi byte đã chỉ định thành các giá trị int tương ứng của nó

Ba đối số của phương thức này là tùy chọn. Đối số đầu tiên được sử dụng để khởi tạo danh sách byte. Nếu đối số đầu tiên là chuỗi, thì đối số thứ hai được sử dụng để mã hóa. Cuối cùng, đối số thứ ba được sử dụng để hiển thị lỗi nếu quá trình mã hóa không thành công

Cú pháp của phương thức byte()

byte ([ data_source [, encoding [, errors]]])

Tất cả các đối số của hàm bytes() là tùy chọn, giống như phương thức bytearray(). Chức năng của các đối số này cũng giống như phương thức bytearray() đã đề cập ở trên

Phương pháp chuyển đổi bytearray thành byte trong Python được hiển thị bên dưới, sử dụng một số ví dụ đơn giản để hiểu rõ hơn về quy trình này

ví dụ 1. Chuyển đổi dữ liệu danh sách từ bytearray thành byte

Khi hàm bytearray() chỉ chứa một đối số, giá trị của đối số sẽ là một dữ liệu từ điển hoặc biến. Ví dụ sau đây cho thấy cách một đối tượng từ điển có thể được chuyển đổi thành một đối tượng bytearray và cách một đối tượng bytearray sau đó có thể được chuyển đổi thành một đối tượng byte. Tiếp theo, vòng lặp for đầu tiên được sử dụng để hiển thị các giá trị của bảng dịch mã ASCII và vòng lặp for thứ hai được sử dụng để hiển thị các ký tự của các mã ASCII tương ứng

#. /usr/bin/env python3
 
# Xác định danh sách
dữ liệu danh sách =< . [72, 69, 76, 76, 79]
# Print the content of the list
print("\nThe dictionary values are :\n ", dữ liệu danh sách .
 
# Initialize bytearray object with list
byteArrayObject = bytearray(listdata)
# Print bytearray object value
print("\nThe output of bytearray() method :\n ", byteArrayObject .
 
# Convert the bytearray object into  bytes object
byteObject = bytes(byteArrayObject)
# Print bytes object value
print("\nThe output of bytes() method :\n ", byteObject .
 
print("\nThe ASCII values of bytes")
# Iterate the bytes object using loop
for val in byteObject:
  in( val ,< . ' ', end='')
 
print("\nThe string values of bytes")
# Iterate the bytes object using loop
for val in byteObject:
  in(chr(<val),' ', end='')

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh. Ở đây, 72, 69, 76 và 79 lần lượt là mã ASCII của 'H,' 'E,' 'L,' và 'O,'

Python chuyển đổi thành mảng byte

ví dụ 2. Chuyển đổi dữ liệu chuỗi từ bytearray thành byte

Ví dụ sau đây cho thấy việc chuyển đổi đối tượng bytearray thành đối tượng byte trong dữ liệu chuỗi. Hai đối số được sử dụng trong phương thức bytearray() của tập lệnh này. Đối số đầu tiên chứa giá trị chuỗi, trong khi đối số thứ hai chứa chuỗi mã hóa. Ở đây, mã hóa 'utf-8' được sử dụng để chuyển đổi thành đối tượng bytearray. Phương thức giải mã () được sử dụng trong tập lệnh để chuyển đổi các đối tượng byte thành dữ liệu chuỗi. Mã hóa tương tự được sử dụng tại thời điểm chuyển đổi

#. /usr/bin/env python3
 
# Lấy giá trị chuỗi
văn bản = . input("Enter any text:\n ")
 
# .
byteArrObj = bytearray(text, 'utf-8')
print("\nThe output of bytesarray() method :\n ", byteArrObj .
 
# Convert bytearray to bytes
byteObj = bytes(byteArrObj)
print("\nThe output of bytes() method :\n ", byteObj .
 
# Convert bytes value into string using emcoding
print("\nThe string values of bytes")
print(byteObj.giải mã("utf-8"))

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh

Python chuyển đổi thành mảng byte

ví dụ 3. Chuyển đổi dữ liệu số nguyên từ bytearray thành byte

Các ví dụ trước cho thấy việc chuyển đổi bytearray và byte dựa trên từ điển và dữ liệu chuỗi. Ví dụ thứ ba này cho thấy việc chuyển đổi bytearray thành byte dựa trên dữ liệu đầu vào. Ở đây, giá trị đầu vào được chuyển đổi thành một giá trị số nguyên và được truyền dưới dạng đối số thông qua hàm bytearray() và đối tượng bytearray sau đó được chuyển đổi thành đối tượng bytes. Các giá trị null dựa trên số nguyên được hiển thị dưới dạng đầu ra của đối tượng bytearray và byte. Tổng số byte được tính thông qua phương thức len() ở cuối tập lệnh và sẽ bằng giá trị số nguyên được truyền dưới dạng đối số vào phương thức bytearray()

#. /usr/bin/env python3
 
thử .
  # Lấy bất kỳ giá trị số nào
  văn bản = int(input("Enter any number:  "))
 
  # Khởi tạo .
  byteArrObj = bytearray(text)
  print("\nThe output of bytesarray() method :\n ", byteArrObj .
 
  # Convert bytearray object to bytes object
  byteObj = bytes(byteArrObj)
  print("\nThe output of bytes() method :\n ", byteObj . "
 
  # Print the size of the bytes object
  print("\nThe lenght of the bytes object: ",len( byteObj . )
except ValueError:
  in("Nhập giá trị số bất kỳ")

đầu ra

Sau khi chạy tập lệnh, 6 được lấy làm đầu vào trong đầu ra sau. Sáu giá trị null được hiển thị dưới dạng đầu ra của bytearray và byte. Khi các giá trị null được tính thì nó hiển thị 6

Python chuyển đổi thành mảng byte

Ví dụ 4. Tạo bytearray Sử dụng append() và Chuyển đổi thành byte

Ví dụ sau đây cho thấy cách các đối tượng bytearray có thể được tạo thông qua phương thức append() và được chuyển đổi thành byte. Biến arrVal được khai báo ở đây như một đối tượng bytearray. Tiếp theo, phương thức append() được gọi 6 lần để thêm 6 phần tử vào mảng. Mã ASCII của các ký tự, 'P,' 'y,' 't,' 'h,' 'o,' và 'n,' lần lượt là 80, 121, 116, 104, 111 và 1120. Chúng được thêm vào đối tượng bytearray. Đối tượng mảng này được chuyển đổi thành đối tượng byte sau này

#. /usr/bin/env python3

# Tạo mảng phụ và thêm mục bằng phương thức append()
arrVal = bytearray()
arrVal.chắp thêm(80)
arrVal. chắp thêm(121)
arrVal. chắp thêm(116)
arrVal. chắp thêm(104)
arrVal. chắp thêm(111)
arrVal. chắp thêm(110)
 < .
# Print the bytearray() values
print("\nThe output of bytearray() method :\n ", mảng .
 
# Convert the bytearray object into a bytes object
byteObject = bytes(arrVal)
 
# Print bytes object value
print("\nThe output of bytes() method :\n ", byteObject )

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh

Python chuyển đổi thành mảng byte

Phần kết luận

Các phương pháp khác nhau được trình bày trong bài viết này để chuyển đổi mảng phụ thành byte sau khi tạo các đối tượng mảng phụ. Sau khi đọc bài viết này, tôi hy vọng rằng bạn hiểu khái niệm về bytearray và byte, biết cách chuyển đổi bytearray thành byte và có thể hiển thị đầu ra của byte dưới dạng chuỗi và ký tự

Làm cách nào để chuyển đổi mảng thành byte trong Python?

Trăn. hàm bytearray() . Nó đưa ra một chuỗi các số nguyên có thể thay đổi trong phạm vi 0

Làm cách nào để chuyển đổi mảng int thành byte trong Python?

Một giá trị int có thể được chuyển đổi thành byte bằng cách sử dụng phương thức int. to_bytes() .

Làm cách nào để chuyển đổi mảng byte thành hex trong Python?

Sử dụng format() + join() để chuyển đổi Mảng Byte thành Chuỗi Hex . Định dạng “02” được sử dụng để đệm các số 0 đứng đầu bắt buộc. Hàm nối cho phép nối kết quả thập lục phân thành một chuỗi.

Làm cách nào để chuyển đổi chuỗi hex thành byte?

Để chuyển đổi chuỗi hex thành mảng byte, trước tiên bạn cần lấy độ dài của chuỗi đã cho và đưa vào trong khi tạo mảng byte mới. byte[] val = byte mới[str. độ dài() / 2];