Python:读取二进制文件中的数组

Vin*_*ent 3 python arrays binaryfiles

我目前正在尝试使用以下技术读取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])
Run Code Online (Sandbox Code Playgroud)

但是对于大型阵列来说它非常慢.有没有办法一次读取整个循环的内容并将其放到mylist中以避免逐个转换/追加每个项目?

非常感谢你.

int*_*jay 11

这就是该array模块的用途:

a = array.array('f')
a.fromfile(f, n)
Run Code Online (Sandbox Code Playgroud)

现在您可以像正常序列类型一样使用数组对象.如果需要,您还可以将其转换为列表tolist.