将列表写入二进制文件时出现问题

时间:2017-12-03 02:40:35

标签: python python-2.7

我正在尝试将list写入二进制文件,然后再次加载它。我有这段代码:

with open('W.bin', mode='wb') as file:                                 
    file.write(bytearray(model.estimator.intercepts_))
file.close()

model.estimator.intercepts_是一个列表。但是,我收到了这个错误:

  File "LM.py", line 200, in model_training
    file.write(bytearray(model.estimator.intercepts_))
TypeError: an integer or string of size 1 is required

我不知道我的代码有什么问题?谢谢

1 个答案:

答案 0 :(得分:0)

这里有两件事情出错。

首先,您的列表必须只包含字符(大小为1的字符串)或0到256范围内的整数才能使用bytearray。列表中的某些元素不满足该条件,您将获得TypeError

其次,您只能将字符串写入文件。如果您需要编写任何其他内容,则应使用pickle

import pickle

with open('W.bin', mode='w') as file:                                 
    pickle.dump(your_array), file)

然后阅读

with open('W.bin', mode='r') as file:                                 
    your_array = pickle.load(file)