gpt4 book ai didi

python - 如何读写二进制文件?

转载 作者:行者123 更新时间:2023-11-28 22:59:13 33 4
gpt4 key购买 nike

在接下来的几天里我无法使用 PC,但我无法忘记这个问题。我只是在玩弄压缩算法,为音频创建了一个我自己的压缩算法,但我一直停留在输出到文件的步骤。所以这是我的问题,希望我能在回来之前找到答案,否则这会影响我的想法。

1) 如果我有一个带有一些整数的 numpy X 数组(比如 int16),如果我打开一个文件对象并执行 file.write(X) 文件输出会是什么样的?数字?还是数字的 ASCII?还是二进制?

2) 根据上述答案,如何将此文件读入 numpy 数组 X?

基本上我的压缩做了一些小波和 fft 变换,在这里和那里做了一些过滤并返回一个包含一些数字的数组,我知道这个数组的格式并且我已经在这里实现了很高的压缩率,下一步是首先将此数组转储到二进制文件中。一旦我实现了这一目标,我的下一个目标就是对文件/矢量实现某种熵编码。

感谢任何意见。

最佳答案

1)写作:

In [1]: f = open('ints','wb')
In [2]: x = numpy.int16(array([1,2,3]))
Out[2]: array([1, 2, 3], dtype=int16)
In [3]: f.write(x)
In [4]: f.close()

2)阅读:

In [5]: f = open('ints','wb')
In [6]: x = f.read()
In [7]: x
Out[7]: '\x01\x00\x02\x00\x03\x00'
In [8]: numpy.fromstring(x, dtype=np.uint16, count=3)
Out[8]: array([1, 2, 3], dtype=uint16)

更新:

正如 J.F.Sebastian 所建议的,有更好的方法可以做到这一点,比如使用:

或如 Janne Karila 建议使用:

关于python - 如何读写二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13220858/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com