【问题标题】:Python : read array in binary filePython:读取二进制文件中的数组
【发布时间】:2012-02-13 11:41:09
【问题描述】:

我目前正在尝试使用以下技术使用 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中,避免每一项的转换/追加?

非常感谢。

【问题讨论】:

  • 如果您将格式字符串从'=f' 更改为'={}f'.format(n),您可以通过一个struct.unpack() 调用读取整个文件。

标签: python arrays binaryfiles


【解决方案1】:

这就是array 模块的用途:

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

现在您可以像使用普通序列类型一样使用数组对象。如果需要,您也可以使用tolist 将其转换为列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-26
    • 2012-02-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 2010-11-12
    相关资源
    最近更新 更多