Python函数读写文件例题

定义FileAction类,最少定义两个方法,read data,write data
调用write data可将字典数据,以以下格式写入Data.txt文件
字典数据:{‘001’: {‘name’: ‘张三’, ‘age’: 18, ‘num’: ‘001’}, ‘002’: {‘name’: ‘张二’, ‘age’: 28, ‘num’: ‘002’}}
文件内数据:
name:张三,age:18,num:001
name:张二,age:28,num:002
调用dataread 方法可将Data.txt文件内的数据重新转换为字典类型的数据并返回

dic={ '001':{'name':'张三','age': 18 ,'num':'001'},
      '002':{'name':'张二','age': 28 ,'num':'002'}}
class FileAction():
    @staticmethod
    def writeDate(dic):
        f=open("Data.txt",'w')
        for k,v in dic.items():#解析出第一层字典,例如'001':{'name':'张三','age': 18 ,'num':'001'}
            for k1,v1 in v.items():#解析出第二层字典:name,张三 age,18 num,001
                f.write( (k1+":"+str(v1)))
                if k1=='num':
                    f.write('\n')
                else:
                    f.write(',')
        f.close()
    @staticmethod
    def readData( ):
        f=open('Data.txt','r')
        line=f.readline()
        dzd={}#定义一个大字典
        while len(line)>0:
            items=line.strip().split(',')#读每一句话,删除空格和\n,并用都好隔开每项,例如name:张三,age:18,num:001
            zd={}#每行定义第二层字典
            for item in items:
                s=item.split(':')#把每项例如name:张三,切成键值对,name 张三
                if s[0]=='age':#如果是年龄,转换成整形
                    zd[s[0]]=int(s[1])
                else:
                    zd[s[0]]=s[1]
                if s[0]=='num':#如果是num,让其值成为第一层的键
                    dzd[s[1]]=zd
            line=f.readline()
        print(dzd)
        f.close()
FileAction.readData( )

猜你喜欢

转载自blog.csdn.net/Liang_Ren_/article/details/88068446
今日推荐