Bir sınav yazıyorum ve öğrenci sınavı tamamladıktan sonra, puanları kaydederken, bir öğrencinin son üç puanının kaydedildiğinden emin olmaya çalışıyorum. isimler. Daha önce bir sınavı tamamlamamışlarsa, metin dosyasında onlar için yeni bir satır yazılır.TypeError '_io.TextIOWrapper' nesnesi, öğe atamasını desteklemiyor
filename = (str(class_number) + 'txt')
with open(filename, 'a') as f:
f.write(str(name) + " : " + str(score) + '\n')
with open(filename) as f:
lines = [line for line in f if line.strip()]
lines.sort()
with open(filename) as f:
f.seek(0)
scores = f.readline()
from collections import deque
for line in scores:
score= int(score)
if name not in f:
f[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:
f[name] = deque(maxlen=3)
TypeError '_io.TextIOWrapper' object does not support item assignment
Yardımınız için minnettarım ve eğer r kodu uygularsam kodun çalışacağına inanıyorum ama elde ettiğim şey son üç puanın bir öğrenci adına kaydedilmiş olmasıdır, böylece Öğrenci zaten bir isim girerse metin dosyasında sadece son skora ekler, ancak eğer bir dosyada 4 olacak noktaya gelirse ilk skoru atar ve sadece en son üçü kaydeder. – user6173661
@ user6173661: Bu görev için GSCE gereksinimlerini biliyorum, evet. Ancak bunu kendi kendinize çözmeniz gerekecek; Bu özel problemde size yardımcı oldum, tam görev çözümüne giden yolda bir yol noktası. –