イテレータを一度反復したら、もう一度反復処理を実行することはできません。
rows = list(reader)
:また
f = open(self.filename)
reader = csv.reader(f, delimiter = ',', quotechar = '"')
assetName, efficiencyRating = self.getValues(reader)
f.seek(0) # rewind file
reader = csv.reader(f, delimiter = ',', quotechar = '"')
self.handleSave(assetName, reader)
リストにデータを読み取ることができ、:あなたは、handleSave
を呼び出してファイルを巻き戻して、新しいリーダーを作成する前にこの問題を解決することができます
一つの方法ですそして、reader
ではなく、rows
を反復処理します。
補足として、Pythonの慣例は、名前がラクダの場合ではなく、アンダースコアで区切られた小文字にすることです。 (例えばget_values
むしろgetValues
、handle_save
はなくhandleSave
より)
ありがとうございます。私は 'csv.reader'がイテレータを返すことを認識しませんでした。私はそれがリストだと思った。それ以上の研究をしていない私のせいです。 :( – Rico