使用 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()
直接从您的文件中读取数据,而不是使用中间的单字符字符串列表。
我有四个字节需要读作 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()
直接从您的文件中读取数据,而不是使用中间的单字符字符串列表。