把字典写入文本,再读出

class Student():

count=0

def init(self,name,age,address):

self.name=name

self.age=age

self.address=address

Student.count+=1

def say (self):

print(self.name,self.age,self.address)

zs=Student(‘张三’,18,‘北京’)

f=open(‘a.txt’,‘w’)

f.write(str(Student.count))

zd=dict(name=zs.name,age=zs.age,address=zs.address)

f.write(’:’)

f.write(str(zd))

f.write(’\n’)

ze=Student(‘张二’,28,‘上海’)

f.write(str(Student.count))

zd=dict(name=ze.name,age=ze.age,address=ze.address)

f.write(’:’)

f.write(str(zd))

f.write(’\n’)

zd=Student(‘张大’,38,‘北京’)

f.write(str(Student.count))

zd=dict(name=zd.name,age=zd.age,address=zd.address)

f.write(’:’)

f.write(str(zd))

f.close()

f=open(‘a.txt’,‘r’)

line=f.readline()#读文件第一行数据

obj=[]

while len(line)>0:

dzd=eval(line[2:].strip(’\n’))#此处如果是2:-1,最后一行没有\n会导致数据不完整

print(dzd)

x=Student(dzd[‘name’],dzd[‘age’],‘中国’+dzd[‘address’])

obj.append(x)

line=f.readline()

f.close()

print(obj)

for x in obj:

x.say()

猜你喜欢

转载自blog.csdn.net/YPL_ZML/article/details/88045906