尝试从文件中取消拾取时出错



当这些(我的(假设得到满足时,我不明白为什么我会从下面的代码中得到错误。

假设是:

  • 'rb'="读取字节"=正在以字节形式读取文件
  • loads=以字节加载=文件以字节加载(实际上这个可能是错误的(

首先,我试图将腌制的数据写入一个文件:

import pickle
variables = {        
1:['enable_family_chng', '0'],
2:['enable_genus_chng', '0'],
3:['enable_species_chng', '0'],
4:['new_family_name', '0'], 
5:['new_genus_name', '0'],
6:['new_species_name', '0'],
}
#if species change is true then also enable add map or just open folder
# define dictionary varaibles
# just set all the variables[n][1] to 1
# better way to write this?... I think so! jst nt yt

variables[1]=['enable_family',{enable_family_chng}]
variables[2]=['enable_genus_chng',{enable_genus_chng}]
variables[3]=['enable_species_chng',{enable_species_chng}]
variables[4]=['new_family_name',{new_family_name}]
variables[5]=['new_genus_name',{new_genus_name}]
variables[6]=['new_species_name',{new_species_name}]
with open("variables.pickle", "wb") as file:
pickle.dumps(variables)

然后我试着从文件中读出来。我试过的一件事是

import pickle
with open("variables.pickle", "rb") as file:
pickle.loads('variables.pickle' 'rb')

返回错误

TypeError:需要类似字节的对象,而不是"str">

我尝试过的两件事

import pickle
with open("variables.pickle", "r") as file:
pickle.load('variables.pickle' 'r')

返回错误

TypeError:文件必须具有"read"one_answers"readline"属性

如果您想pickle到文件中,然后取消pickle,则需要使用.dump()/.load(),而不是.dumps()/loads(),后者正在向字符串转储数据/从中读取数据(因此是末尾的s(。尝试:

import pickle
variables = {        
1:['enable_family_chng', '0'],
2:['enable_genus_chng', '0'],
3:['enable_species_chng', '0'],
4:['new_family_name', '0'], 
5:['new_genus_name', '0'],
6:['new_species_name', '0'],
}
with open("variables.pickle", "wb") as file:
pickle.dump(variables, file)
with open("variables.pickle", "rb") as file:
read_variables = pickle.load(file)
print(variables == read_variables)

最新更新