在Python中构建排名列表:如何为参赛者分配分数?

时间:2017-01-11 01:01:38

标签: python python-2.7 csv

(之前我在Stackexchange的错误部分发布了这个,抱歉)

我正在完成一项高于我头脑的任务。我已经连续几天试图弄清楚如何做到这一点,但我无法做到这一点...... 我必须制作一个排名列表,我可以在其中输入用户,更改用户分数,注册他/她是否付款并按顺序显示所有用户的得分最高的人。

我开始使用CSV的第一部分,我只把基本部分放在这里以节省空间。菜单和导入csv已经完成:(我不得不翻译我的母语,对不起,如果有错误,我知道这是一个坏习惯。)

more = True
while more:
    print("-" * 40)
    firstname = raw_input("What is the first name of the user?: ")
    with open("user.txt", "a") as scoreFile:
        scoreWrite = csv.writer(scoreFile)
        scoreWrite.writerow([firstname, "0", "no"])
    scoreFile.close()
    mr_dnr = raw_input("Need to enter more people? If so, enter 'yes' \n")
    more = mr_dnr in "yes \n"

这样我就可以输入名字了。现在我需要第二部分(当然菜单中的其他选项):

  1. 让用户输入此人的姓名
  2. 之后输入该人的(新)分数。
  3. 因此需要将csv文件(“0”)中任何条目中的第二个值更改为用户输入的内容而不删除csv文件中已有的名称。

    这甚至可能吗?一位善意的用户建议使用SQlite3,但这种基本的CSV内容已经超出了我的能力......

1 个答案:

答案 0 :(得分:0)

你的朋友是对的,SQlite3会更好地解决这个问题。如果这对你的知识拉得太远,我建议有一个名为users的目录,每个用户只有一个文件。使用JSON(或pickle)编写用户信息,并在每次需要更新时覆盖整个文件。