[英]python program not printing all pickle file data
testdata = {}
testdata[Name] = Score
fileexists = os.path.isfile('TestResults- Class '+classnumber)
if fileexists == False:
open('TestResults- Class '+classnumber,mode="w+")
mypicklefile = open('TestResults- Class '+classnumber,mode="wb")
pickle.dump(testdata,mypicklefile)
mypicklefile.close()
elif fileexists == True:
mypicklefile = open('TestResults- Class '+classnumber,mode="ab")
pickle.dump(testdata,mypicklefile)
def teacher():
classchoice = input('what class would you like to see?: ')
readablefile = open('TestResults- Class '+classchoice,mode="rb")
datafile = pickle.load(readablefile)
for name in sorted(datafile):
print(name, datafile[name])
我正在做一个测验,并试图从测验中打印数据。 问题是即使文件中存在更多分数或名称,它也只会打印一个名称和一个分数。
您正在通过追加将新的泡菜写入文件。 您的加载代码只会加载第一个泡菜,因此您创建的第一个条目。
您将始终需要使用'wb'
来用新版本的词典替换磁盘上的数据。
尝试使用'ab'
附加模式尝试读取您写到文件中的其他泡菜没有什么意义; 这些是同一词典的最新修订。 您只需要阅读最后一个,与每次更新字典时只替换整个文件相比,效率低下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.