Python pop和十六进制值

Python pop和十六进制值,python,arrays,Python,Arrays,我是python新手,真的需要一些帮助。我打开一个二进制文件,寻找一个特定的偏移量,然后读取偏移量的前几个字节。我正在努力理解如何从返回的字符串中进一步隔离所需的值。因此,我可以从测试文件中正确地得到一个整数值21229(十六进制值0x52ed),但是我需要进一步,只对前两位(0x52)拆分十六进制,这样我就得到了整数值84,这是我要找的值。代码如下。非常感谢您的帮助 offset=0x49f2 from array import * import os,sys def emptyarray(d

我是python新手,真的需要一些帮助。我打开一个二进制文件,寻找一个特定的偏移量,然后读取偏移量的前几个字节。我正在努力理解如何从返回的字符串中进一步隔离所需的值。因此,我可以从测试文件中正确地得到一个整数值21229(十六进制值0x52ed),但是我需要进一步,只对前两位(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

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

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

这个代码有什么问题?我想本质上没有什么@alKid。它可以工作,但我不知道足够的python来获得我需要的;也就是说,本质上把最后的十六进制值一分为二,剩下的是0x52(我需要使用的整数)。酷..这正是我需要的。非常感谢@Janne Karila