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

我正在尝试将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到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)

以上是 将列表写入二进制文件时的问题 的全部内容, 来源链接: utcz.com/qa/259278.html

回到顶部