2016-04-10 25 views
0

paketini açmak için birden fazla değere ihtiyacım var Sınav yapıyorum ve öğrenci sınavı tamamladıktan sonra, puanları kaydederken, bir öğrencinin son üç skorunun isimlerine kaydedilmesini sağlamaya çalışıyorum. Daha önce bir sınavı tamamlamamışlarsa, metin dosyasında onlar için yeni bir satır yazılır.ValueError:

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

Hangi satırın ne olduğuna bakmayı denediniz mi? – jonrsharpe

+0

Olası kopyası [ValueError: paketin açılması için 1'den fazla değere ihtiyaç var] (https://stackoverflow.com/questions/19749077/valueerror-need-more-than-1-value-to-unpack) –

cevap

0

Sizin line içinde bir virgül yok:

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() 

Ve bu hatadır. Bu nedenle, iki değişkene açılmaya çalışıldıktan sonra ayrılır (bölünmüş sınırlayıcı satırda bulunmadığından). Bunu hata ayıklamak için satırlarınızı yazdırın ve satırlarınızda neyin bulunduğunu görün.

+0

Bunu bunu yapar mıyım? Sadece sadece virgül kaldırarak – user6173661

+0

Hayır. 2 değeri açmaya çalışıyorsunuz ama sadece 1 tane geri alıyorsunuz. 2 değer elde etmek için, hattınızda gerçekten bir çeşit sınırlayıcı olması gerekir. Sadece satırın kendisini istiyorsanız, o zaman 1 değişken kullanın ve bölünmeyi tamamen kaldırın. – Idos

+0

Rahatsız ettiğim için üzgünüm ama sınırlayıcının ne anlama geldiğini bilmiyorum – user6173661

1

Bu hata iletisi, okumaya çalıştığınız dosyada , karakterinin bulunmadığını gösterir.