Tùy thuộc vào định dạng trong file văn bản, nó có thể được dễ dàng hơn để chuyển đổi trực tiếp
>>> b=bytearray('BBA7F69E'.decode('hex'))
hoặc
>>> b=bytearray('BB A7 F6 9E'.replace(' ','').decode('hex'))
>>> b
bytearray(b'\xbb\xa7\xf6\x9e')
>>> b[0]
187
>>> hex(b[0])
'0xbb'
>>>
một bytearray có thể dễ dàng chuyển đổi sang một danh sách
>>> list(b) == [0xBB, 0xA7, 0xF6, 0x9E]
True
>>> list(b)
[187, 167, 246, 158]
Nếu bạn muốn thay đổi cách danh sách được hiển thị bạn sẽ cần phải thực hiện danh sách lớp của riêng bạn
>>> class MyList(list):
... def __repr__(self):
... return '['+', '.join("0x%X"%x if type(x) is int else repr(x) for x in self)+']'
...
>>> MyList(b)
[0xBB, 0xA7, 0xF6, 0x9E]
>>> str(MyList(b))
'[0xBB, 0xA7, 0xF6, 0x9E]'
Nguồn
2010-03-07 21:45:05
Tôi nghĩ rằng bạn có ý nghĩa 'int (x, 16)' –