4 자 문자열이 있다고 가정하면이 문자열을 문자열의 각 문자가 해당하는 16 진수로 변환되는 바이트 배열로 변환하려고합니다. 예 :파이썬 : 문자열을 바이트 배열로 변환
str = "ABCD"
내 출력이 작업을 수행 할 수있는 간단한 방법이 있나요
array('B', [41, 42, 43, 44])
로 얻으려고? 기능은 여기에 당신을 도울 수
4 자 문자열이 있다고 가정하면이 문자열을 문자열의 각 문자가 해당하는 16 진수로 변환되는 바이트 배열로 변환하려고합니다. 예 :파이썬 : 문자열을 바이트 배열로 변환
str = "ABCD"
내 출력이 작업을 수행 할 수있는 간단한 방법이 있나요
array('B', [41, 42, 43, 44])
로 얻으려고? 기능은 여기에 당신을 도울 수
인코딩은 인코딩 문자열
In [44]: str = "ABCD"
In [45]: [elem.encode("hex") for elem in str]
Out[45]: ['41', '42', '43', '44']
또는 사용할 수있는 배열 모듈
In [49]: import array
In [50]: print array.array('B', "ABCD")
array('B', [65, 66, 67, 68])
s = "ABCD"
from array import array
a = array("B", s)
당신이 원하는 경우의 인코딩 된 버전을 반환 진수 :
print map(hex, a)
그냥을 사용하십시오.은 바이트 목록입니다.
Python2 :
s = "ABCD"
b = bytearray()
b.extend(s)
Python3 : 그 내장이기 때문에
그런데s = "ABCD"
b = bytearray()
b.extend(map(ord, s))
는 변수 이름으로 str
을 사용하지 마십시오.
이것은 3.4 절에서 깨졌습니다 :'TypeError : 정수가 필요합니다 ' –
@KevanAhlquist my bad. 지금 고쳤습니다. – Pithikos
파이썬 3의 경우 이것은 더 깨끗해진다 : 's = "ABCD"', 'b = bytearray()', 'b.extend (s.encode()) –
바이트 배열을 얻는 대신 ASCII로 문자열을 인코딩 할 수도 있습니다 : b=s.encode('ascii')
.
(파이썬 2)
s = "ABCD"
b = bytearray(s)
# if your 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]
참조 : 당신이 원하는 것은 적어도이 정확한 형태로 수 없습니다 http://www.dotnetperls.com/bytes-python
. 'B'타입의 bytearray는 1 바이트 정수를 포함하며, 항상 10 진수로 표현됩니다. –