python将十六进制二进制转换为字符串

时间:2017-01-11 19:29:38

标签: python python-3.x binary hex

我正在使用python3.5,我希望用十六进制字节(b'\x00'b'\x01'等)将输出写入\x00 -> 0和{{1}的python字符串我有这种感觉它可以很容易地以非常pythonic的方式完成,但是半小时的谷歌搜索仍然让我觉得最简单的方法就是手工制作带有映射的字典(我实际上只需要从0到0) 7)。

\x01 -> 1

4 个答案:

答案 0 :(得分:2)

不确定您是否需要此结果,但请尝试

output = [str(ord(x)) for x in output]

答案 1 :(得分:1)

字节字符串自动为数字列表。

input_bytes = b"\x00\x01"
output_numbers = list(input_bytes)

答案 2 :(得分:1)

你只是在寻找这样的东西吗?

for x in range(0,8):
    (x).to_bytes(1, byteorder='big')

输出是:

b'\x00'
b'\x01'
b'\x02'
b'\x03'
b'\x04'
b'\x05'
b'\x06'
b'\x07'

反之亦然:

byteslist = [b'\x00',
b'\x01',
b'\x02',
b'\x03',
b'\x04',
b'\x05',
b'\x06',
b'\x07']

for x in byteslist:
    int.from_bytes(x,byteorder='big')

输出:

0
1
2
3
4
5
6
7

答案 3 :(得分:0)

如果您需要将b"\x0F"转换为F,请使用

print( hex(ord(b'\x0F'))[2:] )

format()

print( format(ord(b'\x0F'), 'X') )    # '02X' gives string '0F'
print( '{:X}'.format(ord(b'\x0F')) )  # '{:02X}' gives string '0F'