gpt4 book ai didi

python - 使用 `struct.pack` 将数据写入文件时出错

转载 作者:行者123 更新时间:2023-11-28 16:29:36 25 4
gpt4 key购买 nike

我有一个 numpy.ndarray 数字样本,每个数字都在 1 到 2**20 之间。

我想将它写入一个二进制文件,这样每个元素都由四个字节表示。

但是,生成的文件大小与样本大小的 4 倍不同。

这是我正在使用的代码:

        outputFile = open('testDS', 'w')
print len(sample)
if (outputFile is not None):
for s in sample:
assert(s < 2**20)
r = struct.pack("i", s)
assert(len(r) == 4)
outputFile.write(r)
outputFile.close()

我得到的输出(样本大小)是:1000

但是,生成的文件大小为 4026 字节。

Any ideas why the file size is not exactly 4000 bytes?

最佳答案

以二进制方式打开文件:

outputFile = open('testDS', 'wb')

否则,文件对象可能会对出现在二进制数据中的换行符进行一些神奇的转换,从而导致将额外的字符写入文件。参见,例如,https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files

关于python - 使用 `struct.pack` 将数据写入文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33333284/

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