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( )
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值