Python-在CSV文件中编辑特定的单元格

时间:2019-01-25 00:53:24

标签: python python-3.x csv

我用Python创建了一个测验游戏,它还包含一个登录和注册程序,但是我试图添加一个计分系统。

目前,我已将CSV文件设置如下:

username,password,score

创建帐户时,分数设置为0,并在您使用以下方式登录时加载:

for row in users:
     if username == row[0]:
         currentScore = row[2]
         currentScore = int((currentScore))

这会从CSV文件中获取用户的高分。 但是,当游戏结束时,我可以使用此设置来确定其新分数是否高于旧分数:

if int(score) > int(currentScore):
    currentscore = score

然后我需要它来打开数据库,找到正在玩的用户,并用新的分数更新那里的分数。我该怎么做?我试图让csv编辑特定的行,但是它似乎不起作用。

完整代码可在此处找到:https://pastebin.com/q07qazJA

1 个答案:

答案 0 :(得分:1)

TL; DR

if int(score) > int(currentScore):
    currentscore = score

    r = csv.reader(open('users.csv'))
    lines = list(r)
    for n, line in enumerate(lines):
        if [username, password] == list(line):
            break
    lines[n] = username, password, score

    writer = csv.writer(open('users.csv', 'w'))
    writer.writerows(lines)

quiz = False

说明:编辑行将需要分两步进行,因为读写文件的同一行不切实际,因此首先打开csv文件,然后将数据保存到列表,编辑列表,然后再次打开文件 将编辑后的列表写回到csv