2016-09-24 213 views
0

我想读取二进制文件并返回例如“ffffff”一系列6个十六进制代码。这是否有意义?我有(下图)的代码只返回的2所以它看起来像“FF”Python二进制到多十六进制

fp = open(f, 'rb') 
hex_list = ("{:02x}".format(ord(c)) for c in fp.read()) 

我特别希望做这回像

['ab0012', 'ffbaf0'] 

列表不喜欢

['ab', '00', '12', 'ff', 'ba', 'f0'] 

任何帮助,将不胜感激谢谢。

+0

你有没有考虑每次读3个字节? –

+0

你能举一个你的意思吗? – killer

回答

1

如何:

fp = open(f, 'rb') 
hex_list = ["{:02x}".format(ord(c)) for c in fp.read()] 
return [''.join(hex_list[n:n+3]) for n in range(0, len(hex_list), 3)] 
+0

aha我喜欢你的想法谢谢。如果你找到一个更直接的方式来做到这一点,请让我知道再次感谢 – killer