2

我有一个 int 类型的变量,我希望将它写入二进制文件中的某个位置:

所以是这样的:

with open("file","wb") as f:
    f.seek(position)
    f.write(variable)

但变量是在这个位置取 4 个字节。写作时如何传达这一点?

这就是我的阅读方式:

def read(self, position, length):
    self.file.seek(position)
    a=self.file.read(length)
    data=0
    for i in range(length):
        data=data + (a[i])*pow(256,i)
    return data
4

1 回答 1

4

使用 Python结构模块。例子:struct.pack("<I", 3)

该示例将整数值 3 转换为无符号整数 little-endian。

以下是使用本机大小和对齐方式读取和写入本机整数的函数。

import struct

def write_int(f, position, x):
    f.seek(position)
    f.write(struct.pack("i", x))

_int_length = len(struct.pack("i", 0))  # find out size of native integer
def read_int(f, position):
    f.seek(position)
    return struct.unpack("i", f.read(_int_length))
于 2012-06-13T19:46:25.313 回答