python第四章课后习题(4)

将file_in【student.txt】文件转换为json格式,并保存为file_out【student.json】文件到当前目录。file_in【student.txt】文件每行内容的格式为:

时间 姓名 学号:内容
09:54:13 张三 1907040115:11111
09:54:17 李四 1907040220:22222
09:54:20 张三 1907040115:223
Json文件的格式如下,当出现重复学号时,只保留该学号第一次出现的内容。

file_out数据按学号顺序保存。

提示:file_in文件的解析,用正则表达式更加高效。请自行学习re库。

正则表达式有点复杂,懒得弄了

import json
def fun4(file_in='student.txt',file_out='student.json'):
    """
    { "1907040115":{ "Name": "张三", "Time": "09:54:13", "Content": "11111" }, "1907040220":{ "Name": "李四", "Time": "09:54:17", "Content": "22222" }}
    """
    with open(abspath(file_in),'r',encoding='utf8') as f:
        l=f.readlines()
        dic={
    
    }
        for i in range(len(l)):
            name=l[i].split()[1]
            num=l[i].split()[2]
            time=l[i].split()[0]
            con=l[i].split()[4]
            if num not in dic:
                dic1={
    
    "Name":name,"Time":time,"Content":con}
                dic[num]=dic1
        dic2=dict(sorted(dic.items(),key=lambda x:x[0]))
    path1=abspath('student.json')
    with open(path1,'w',encoding='utf8') as f1:
        json.dump(dic2,f1)

这里试多了,文件锁掉了
使用这个来解锁

! rm -f student.json

猜你喜欢

转载自blog.csdn.net/qq_53029299/article/details/114598148