変更可能なインスタンス変数の比較的大きなリストをテキストファイルに保存する必要があります。これは、現在の読み取りと書き込みの方法の内訳です。
class Car():
def __init__(self, name, size, color):
self.name = name
self.size = size
self.color = color
aa = Car('truck','big','red')
bb = Car('sedan','small','blue')
cc = Car('bus','big','yellow')
with open('test.csv', 'ab') as ff:
ww = csv.writer(ff)
for i in [aa, bb, cc]:
ww.writerow([i.name, i.size, i.color])
carList = []
with open('test.csv', 'rb') as ff:
rr = csv.reader(ff)
for i in rr:
carList.append(Car(i[0], i[1], i[2]) )
print carList[1].color
これにはいくつかの問題があります。列の数と順序は効果的にハードコーディングされています。これを簡単に回避できるかどうかはわかりませんが、そうすべきだと思います。ファイルの途中でインスタンスを変更するには、すべての行を繰り返して書き直し、「名前」(他の変数とは異なり一意)をチェックして、行の書き込み方法を変える必要があると思います。また、インスタンス化するまで名前で値に直接アクセスすることはできません。これもそれほど大きな問題ではありませんが、避けたほうがいいと思います。
このシステムは十分に機能しますが、大幅に改善できるようです。