2016-09-24 245 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