-2
私はクイズをコーディングしています。クイズを完了した後、スコアを保存すると、最後の3つのスコアがクイズに保存されます名前。以前にクイズを完了していない場合は、テキストファイル内に新しい行が書き込まれます。TypeError '_io.TextIOWrapper'オブジェクトはアイテム割り当てをサポートしていません
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()
そして、これは誤りです:
f[name] = deque(maxlen=3)
TypeError '_io.TextIOWrapper' object does not support item assignment
助けていただきありがとうございます。私はコードを実行すると思いますが、達成しようとしているのは最後の3つのスコアが生徒の名前に保存されているためですテキストファイルでは最後のスコアに追加するだけですが、ファイルに4がある場合は最初のスコアを破棄し、最新の3つを保存します。 – user6173661
@ user6173661:私はこの作業のGSCE要件に精通しています。しかし、あなた自身でこれを理解する必要があります。私はこの特定の問題を手伝ってくれました。それは完全なタスクソリューションへの道のりです。 –