python - 如何将压缩的二进制文件读取为 float 组

标签 python arrays binary

我需要读取一个压缩的未格式化的二进制文件作为 float 组。我发现做到这一点的唯一方法是使用 os 解压缩,使用 np.fromfile 读取它,然后再次压缩它。

os.system('gunzip filename.gz')
array = np.fromfile('filename','f4')
os.system('gzip filename')

但是,这是 Not Acceptable 。除了困惑之外,当我没有写权限时,我还需要读取文件。据我所知,np.fromfile不能直接读取压缩文件。我发现有人推荐我使用这个:

f=gzip.GzipFile('filename')
file_content = f.read()

但这会返回类似这样的内容:'\x00\x80\xe69\x00\x80\xd19\x00\x80' 而不是 float 组。有谁知道如何将此输出转换为 float 组,或者有更好的方法吗?

最佳答案

读取文件内容后,您应该能够使用 numpy.fromstring 获取数组:

import gzip
import numpy as np

f=gzip.GzipFile('filename')
file_content = f.read()
array = np.fromstring(file_content, dtype='f4')

关于python - 如何将压缩的二进制文件读取为 float 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38064360/

相关文章:

ruby - 将文件中的字节数据读入多个整数

python - 从 excel 读取时 Pandas 合并单元格问题

python - NetworkX 节点标签相对位置

python - memoryview 上的微积分(python 数组)

Java - 带有数组列表的二进制文件 I/O

c++ - 是否可以在循环中写入多个二进制文件

python - 摆脱pygame中的递归

javascript - Array Push 在 JavaScript 中对相同的值使用相同的索引

arrays - 从创建二维数组的 Excel 单元格中读取数组

php - 从数组中仅获取非数字键的简单方法