Python:从二进制文件读取数组

4 投票
1 回答
8227 浏览
提问于 2025-04-17 12:57

我现在正在尝试用Python读取一个Fortran文件,使用的方法是:

with open(myfile, "rb") as f:
    for i in range (0, n):
        s = struct.unpack('=f', f.read(4))
        mylist.append(s[0])

但是对于大数组来说,这个速度非常慢。有没有办法一次性读取整个循环的内容,并把它放到我的列表(mylist)中,这样就可以避免一个一个地转换和添加每个项目呢?

非常感谢。

1 个回答

12

这就是 array 模块的用途:

a = array.array('f')
a.fromfile(f, n)

现在你可以像使用普通的序列类型一样使用数组对象。如果需要的话,你还可以用 tolist 把它转换成列表。

撰写回答