ValueError:需要多个值来解包

时间:2016-04-10 15:02:42

标签: python python-3.x random collections deque

我正在编写测验并在学生完成测验后,在保存分数时,我正在努力确保将学生的最后三个分数保存到他们的名字中。如果他们之前没有完成测验,则会在文本文件中为他们写一个新行。

filename = (str(class_number) + 'txt')
with open(filename, 'a') as f:
    f.write(str(name) + " : " + str(score) + '\n')

with open(filename) as f:
    f.seek(0)
    scores = f.readline()
    from collections import deque
    for line in scores:
        name, score = line.rstrip('\n').split(',')
        score= int(score)
        if name not in filename:
            filename[name] = deque(maxlen=3)
        temp_q = filename[name]
        temp_q.append(str(score))
        filename[name] = temp_q

    filehandle = open (filename, 'w')
    for key,values in filename.iteritems():
        filehandle.write(name + ',')
        filehandle.write (','.join(list(values)) + '\n')
    filehandle.close()

这就是错误:

name, score = line.rstrip('\n').split(',')
Value error need more than 1 value to unpack

1 个答案:

答案 0 :(得分:0)

您的line中没有逗号。因此,在拆分后尝试将其解压缩为两个变量会失败(因为行中不存在拆分定界符)。打印您的行以对其进行调试,并查看行中实际包含的内容。