Hướng dẫn how do you create a byte array from a string in python? - làm thế nào để bạn tạo một mảng byte từ một chuỗi trong python?

Nói rằng tôi có một chuỗi 4 ký tự và tôi muốn chuyển đổi chuỗi này thành một mảng byte trong đó mỗi ký tự trong chuỗi được dịch thành hex tương đương. ví dụ.

str = "ABCD"

Tôi đang cố gắng để có được đầu ra của mình để trở thành

array('B', [41, 42, 43, 44])

Có một cách đơn giản để thực hiện điều này?

Hướng dẫn how do you create a byte array from a string in python? - làm thế nào để bạn tạo một mảng byte từ một chuỗi trong python?

Hỏi ngày 24 tháng 7 năm 2012 lúc 4:29Jul 24, 2012 at 4:29

AndroiddevandroiddevAndroidDev

Huy hiệu vàng 19.7K4040 gold badges137 silver badges232 bronze badges

1

chức năng mã hóa có thể giúp bạn ở đây, mã hóa trả về một phiên bản được mã hóa của chuỗi

In [44]: str = "ABCD"

In [45]: [elem.encode("hex") for elem in str]
Out[45]: ['41', '42', '43', '44']

Hoặc bạn có thể sử dụng mô -đun mảng

In [49]: import array

In [50]: print array.array('B', "ABCD")
array('B', [65, 66, 67, 68])

Đã trả lời ngày 24 tháng 7 năm 2012 lúc 4:39Jul 24, 2012 at 4:39

2

Chỉ cần sử dụng

array('B', [41, 42, 43, 44])
7 là danh sách các byte.

Python2:

s = "ABCD"
b = bytearray()
b.extend(s)

Python3:

s = "ABCD"
b = bytearray()
b.extend(map(ord, s))

Nhân tiện, không sử dụng

array('B', [41, 42, 43, 44])
8 làm tên biến vì được tích hợp.

Đã trả lời ngày 20 tháng 3 năm 2015 lúc 14:32Mar 20, 2015 at 14:32

PithikospithikosPithikos

17.6K15 Huy hiệu vàng109 Huy hiệu bạc129 Huy hiệu đồng15 gold badges109 silver badges129 bronze badges

7

Một giải pháp thay thế để có được một mảng byte là mã hóa chuỗi trong ASCII:

array('B', [41, 42, 43, 44])
9.

Hướng dẫn how do you create a byte array from a string in python? - làm thế nào để bạn tạo một mảng byte từ một chuỗi trong python?

Josliber ♦

43.4K12 Huy hiệu vàng96 Huy hiệu bạc132 Huy hiệu Đồng12 gold badges96 silver badges132 bronze badges

Đã trả lời ngày 19 tháng 7 năm 2015 lúc 6:42Jul 19, 2015 at 6:42

2

Điều này phù hợp với tôi (Python 2)

s = "ABCD"
b = bytearray(s)

# if you print whole b, it still displays it as if its original string
print b

# but print first item from the array to see byte value
print b[0]

Tham khảo: http://www.dotnetperls.com/bytes-python

Đã trả lời ngày 27 tháng 5 năm 2016 lúc 3:13May 27, 2016 at 3:13

MGEARMGEARmgear

1.2432 huy hiệu vàng21 Huy hiệu bạc34 Huy hiệu đồng2 gold badges21 silver badges34 bronze badges

Công việc này trong cả Python 2 và 3:

>>> bytearray(b'ABCD')
bytearray(b'ABCD')

Chuỗi ghi chú bắt đầu với

In [44]: str = "ABCD"

In [45]: [elem.encode("hex") for elem in str]
Out[45]: ['41', '42', '43', '44']
0.

Để có được các ký tự cá nhân:

>>> print("DEC HEX ASC")
... for b in bytearray(b'ABCD'):
...     print(b, hex(b), chr(b))
DEC HEX ASC
65 0x41 A
66 0x42 B
67 0x43 C
68 0x44 D

Hi vọng điêu nay co ich

Đã trả lời ngày 22 tháng 4 năm 2019 lúc 17:17Apr 22, 2019 at 17:17

Hướng dẫn how do you create a byte array from a string in python? - làm thế nào để bạn tạo một mảng byte từ một chuỗi trong python?

JULIOCESARJULIOCESARjuliocesar

5.6068 Huy hiệu vàng42 Huy hiệu bạc62 Huy hiệu Đồng8 gold badges42 silver badges62 bronze badges

Tùy thuộc vào nhu cầu của bạn, đây có thể là một bước hoặc hai bước

  1. Sử dụng
    In [44]: str = "ABCD"
    
    In [45]: [elem.encode("hex") for elem in str]
    Out[45]: ['41', '42', '43', '44']
    
    1 để chuyển đổi chuỗi thành byte, bất biến
  2. Sử dụng
    array('B', [41, 42, 43, 44])
    
    7 để chuyển đổi byte thành bytearray, có thể thay đổi
s="ABCD"
encoded=s.encode('utf-8')
array=bytearray(encoded)

Việc xác nhận sau đây được thực hiện trong Python 3.7

array('B', [41, 42, 43, 44])
0

Hướng dẫn how do you create a byte array from a string in python? - làm thế nào để bạn tạo một mảng byte từ một chuỗi trong python?

Lleims

1.17310 huy hiệu bạc34 huy hiệu đồng10 silver badges34 bronze badges

Đã trả lời ngày 1 tháng 8 năm 2020 lúc 23:45Aug 1, 2020 at 23:45

OldPridEoldPrideoldpride

5755 Huy hiệu bạc11 Huy hiệu đồng5 silver badges11 bronze badges

1

array('B', [41, 42, 43, 44])
1

Nếu bạn muốn hex:

array('B', [41, 42, 43, 44])
2

Anthony

11.9k9 Huy hiệu vàng68 Huy hiệu bạc102 Huy hiệu Đồng9 gold badges68 silver badges102 bronze badges

Đã trả lời ngày 24 tháng 7 năm 2012 lúc 4:51Jul 24, 2012 at 4:51

HyryhyryHYRY

91.7K25 Huy hiệu vàng183 Huy hiệu bạc186 Huy hiệu đồng25 gold badges183 silver badges186 bronze badges

1

Vì không có câu trả lời nào được tạo ra chính xác

In [44]: str = "ABCD"

In [45]: [elem.encode("hex") for elem in str]
Out[45]: ['41', '42', '43', '44']
3 và câu trả lời của Avasal thất bại trong Python 3, tôi đăng bài thay thế ở đây:

array('B', [41, 42, 43, 44])
3

bản in nào

array('B', [41, 42, 43, 44])
4

Lưu ý rằng 65-68 là ASCII chính xác cho "ABCD".

Đã trả lời ngày 15 tháng 12 năm 2021 lúc 14:04Dec 15, 2021 at 14:04

user171780user171780user171780

1.41811 Huy hiệu bạc 30 Huy hiệu Đồng11 silver badges30 bronze badges

Đối với Python 3, nó đã làm việc cho những gì @hyry đã đăng. Tôi cần nó cho một dữ liệu được trả về trong một dbus.array. Đây là cách duy nhất nó hoạt động

array('B', [41, 42, 43, 44])
5

từ mảng nhập mảng

array('B', [41, 42, 43, 44])
6

Hướng dẫn how do you create a byte array from a string in python? - làm thế nào để bạn tạo một mảng byte từ một chuỗi trong python?

Đã trả lời ngày 19 tháng 12 năm 2018 lúc 15:08Dec 19, 2018 at 15:08

Hướng dẫn how do you create a byte array from a string in python? - làm thế nào để bạn tạo một mảng byte từ một chuỗi trong python?

Làm cách nào để biến một chuỗi thành một mảng byte?

Có hai cách để chuyển đổi mảng byte thành chuỗi: bằng cách sử dụng trình xây dựng lớp chuỗi. Bằng cách sử dụng mã hóa UTF-8.By using String class constructor. By using UTF-8 encoding.

Làm thế nào để bạn tạo một mảng byte trong Python?

String = "Python rất thú vị."# Chuỗi có mã hóa 'UTF-8' ARR = byteArray (Chuỗi, 'UTF-8') in (ARR) Chạy mã ..
Kích thước = 5. mảng = bytearray (kích thước) in (mảng) mã chạy ..
rlist = [1, 2, 3, 4, 5] mảng = bytearray (rlist) in (mảng) mã chạy ..

Làm thế nào để bạn tạo một byte của một chuỗi trong Python?

Chúng ta có thể sử dụng lớp byte tích hợp trong Python để chuyển đổi chuỗi thành byte: chỉ cần chuyển chuỗi làm đầu vào đầu tiên của hàm tạo của lớp byte và sau đó chuyển mã hóa làm đối số thứ hai.In đối tượng hiển thị một biểu diễn văn bản thân thiện với người dùng, nhưng dữ liệu có trong đó là trong byte.pass the string as the first input of the constructor of the Bytes class and then pass the encoding as the second argument. Printing the object shows a user-friendly textual representation, but the data contained in it is​ in bytes.

Là byte [] giống như chuỗi?

Các đối tượng byte là chuỗi byte, trong khi các chuỗi là chuỗi các ký tự.Các đối tượng byte ở dạng máy có thể đọc được nội bộ, các chuỗi chỉ ở dạng người có thể đọc được.Vì các đối tượng byte có thể đọc được máy, chúng có thể được lưu trữ trực tiếp trên đĩa.. Byte objects are in machine readable form internally, Strings are only in human readable form. Since Byte objects are machine readable, they can be directly stored on the disk.