python - 如何更改和重新选择 python 中的值

标签 python pickle

我正在尝试向我的程序添加一个功能,该功能可以在所有运行时保留用户名和高分。该函数应该加载以前玩游戏时的高分,并能够将用户/分数元组附加到列表分数。根据我的理解,下面的代码应该可以工作,但由于某种原因,它只会显示程序运行当前时间的用户/分数集。我如何编辑此代码以完成此操作。抱歉,我是新来的,我只是想了解...

import pickle

    score = 12

    def scor_func(score):
      scores = []
      name = input("Please enter your name: ")
      entry = (name, score)
      scores.append(entry)
      f = open("Triviascores.bat", "wb")
      pickle.dump(scores, f)

      f.close()

      f = open("Triviascores.bat", "rb")
      scores = pickle.load(f)
      f.close()
      return scores

    scores = scor_func(score)
    print(scores)

最佳答案

你在这里交换了你的操作。

您的代码创建一个空的 scores 列表,添加一个条目,然后保存该列表。之后您再次加载该文件,因此您加载您刚创建的新列表。

您需要先加载以前的分数,附加新分数,然后保存数据:

def scor_func(score):
    name = input("Please enter your name: ")
    entry = (name, score)

    scorefile = "Triviascores.bat"
    if os.path.exists(scorefile):
        with open(scorefile, 'rb') as sf:
            scores = pickle.load(sf)
    else:
        scores = []

    scores.append(entry)

    with open(scoresfile, "wb") as sf:
        pickle.dump(scores, sf)

    return scores

关于python - 如何更改和重新选择 python 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19990545/

相关文章:

python - 在 Python (Pandas/Numpy) 中,如何使用条件和特定 block 大小对 df 进行子集化?

python - 在 Python 中创建目录然后打开其中的文件时出错,但如果目录已存在则不会出错

Python pickle 似乎在类内部中断,但在命令行脚本中却没有

python - 使用pickle记录用户的输入而不覆盖文件

python - Pandas 在这里做什么,我的索引 [0] 和 [1] 引用相同的值?

python - 通过 API 将整个 Google 日历(其所有事件)导出到文件

azure - 如何在 Azure 中保存生命周期模型文件 (.pkl)

python - 使用 C 绑定(bind)导入代码的 Pickle 模块

python - cPickle 数据量非常大

python - 在哪里存放执行生物信息学分析的 Python 脚本?