【问题标题】:pickle dump method add wierd binary data泡菜转储方法添加奇怪的二进制数据
【发布时间】:2022-07-16 00:29:38
【问题描述】:

大家!

我在一个文件中使用pickle.dump() 写入了一些二进制数据,并按照以下代码读取该文件。

import numpy as np
import pickle

save_file = open('test.rdb','wb')
save_data = np.array([1, 2, 3])
pickle.dump(np.ndarray.tobytes(save_data),save_file)
save_data = np.array([1.0, 2.0, 3.0])

pickle.dump(np.ndarray.tobytes(save_data),save_file)
save_file.close()

read_file = open('test.rdb','rb')
data = read_file.read()
print(data)

当我使用十六进制编辑器打开文件时,有些数据不是我写的。 (下图中红框)

Binary file picture is here

那些是什么?以及如何删除它们?

【问题讨论】:

    标签: python binary pickle dump


    【解决方案1】:

    我建议不要使用pickle转储文件,而是使用python默认打开函数在wb中打开文件然后转储文件。转储时不会添加任何额外的二进制字节。

    binary_file = open('test.rdb', "wb")
    binary_file.write(np.ndarray.tobytes(save_data))
    binary_file.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 2012-12-29
      • 2020-08-03
      • 2015-08-17
      • 2011-07-29
      • 2013-05-06
      • 1970-01-01
      相关资源
      最近更新 更多