我正在尝试将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
我不知道我的代码有什么问题?谢谢
答案 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)