Python pop和十六进制值

时间:2013-11-29 09:45:11

标签: python arrays pop

我是python的新手,真的需要一些帮助。我打开一个二进制文件,寻找一个特定的偏移量,然后读取偏移量的前几个字节。我很难理解如何在返回的字符串中进一步隔离我需要的值。所以,我可以从测试文件(十六进制值0x52ed)中正确地获得一个21229的整数值,但我需要更进一步,只将前十二位(0x52)拆分为十六进制,这样我就得到了整数值84,这是我之后的值。代码如下。非常感谢您给予的任何帮助

offset=0x49f2
from array import *
import os,sys
def emptyarray(data):
    while len(data) > 0:
       data.pop()

bo=sys.byteorder
filename="c:\\test\test.fil"
fp=open (filename,"rb")
data=array("h")
fp.seek(offset,0)
if bo=="big":
   data.byteswap()
data.fromfile(fp,1)
value=data.pop()
print value
hexvalue=hex(value)
print hexvalue

1 个答案:

答案 0 :(得分:1)

要从0x52ed转到0x52,你可以向右移8位:

>>> hex(0x52ed >> 8)
'0x52'