使用 Python 2 读取 4 个字节的数据作为 Long

Reading 4 bytes of data as a Long with Python 2

我有四个字节需要读作 long

当我读取我的文件时,我读取了以下字节:

['\x10', '\xef', '\xf1', '\xea']

根据我的文件格式描述,这四个字节代表一个long。

如何使用 Python 将这些字节转换为长整数?

另外:有人会使用类似的方法将 2 个字节转换为 Short 吗?

这是我如何读取文件的示例代码:

source = "test.whatever"
print "Loading file:", source;
data = []   
f = open(source, "rb")
counter = 0;

#Let's load the data here:
try:
    byte = f.read(1) #skip the first byte according to my file
    while byte != "": 
        byte = f.read(1)
        data.append(byte)  #read every byte into an array to work on later
        counter = counter + 1

finally:
    f.close()
print "File loaded."
print counter
import struct
struct.unpack('>l', ''.join(ss))

我选择 interpret 它作为大端,你需要自己决定,如果你的数据是小端,则使用 < 代替。

如果可能,请使用 unpack_from() 直接从您的文件中读取数据,而不是使用中间的单字符字符串列表。