繁体   English   中英

python程序不打印所有泡菜文件数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM