Python文件写入

设计一个数据结构,存储班级中所有同学的本学期五门课程的成绩信息 , 包含三个元素,分别是学号,姓名,成绩。 设计出该结构进行存储,为了简化,学号为1100, 学号为1的同学姓名为 “A1”, 学号为30的同学姓名为”A30”,每个同学每门课程的成绩均为随机生成的一个60100之间的随机数。
(1)当结构为dic = {1:[“A1”,[60,60,60,60,60 ]]}时,【不使用序列化方法】
①把如上数据写入名字为score.txt的文件中。以字符串形式写入。
②读出score.txt文件中的内容到内存中,并使用循环对读出的字典进行控制台输出。
(2)当结构为[ {1:{ “A1”:[ 60,60,60,60,60]} }, {2:{“A2”:[ 60,60,60,60,60]} }……] 【不使用序列化方法】
①把如上数据写入名字为score.txt的文件中。以字符串形式写入。
②读出score.txt文件中的内容到内存中,并使用循环对读出的内容进行控制台输出。
③使用序列化的方法,分别把(1)和(2)的内容写入文件,然后再从文件中读出。

import random

class Score:  
    def __init__(self, score_dic):  
        self.score_dic = score_dic

# 定义一个函数,用于将嵌套字典写入文件中  
def write_score_file(score_dic, filename):  
    with open(filename, 'w') as f:  
        for key, value in score_dic.items():  
            f.write(f"{key}:{value}\n")

# 定义一个函数,用于从文件中读取嵌套字典  
def read_score_file(filename):  
    with open(filename) as f:  
        score_dic = {}  
        for line in f:  
            key, value = line.strip().split(':')[:2]  
            score_dic[key] = value.split(',')  
    return score_dic

# 定义一个函数,用于将嵌套字典转换为列表  
def to_list(score_dic):  
    return [score[1] for score in score_dic.values()]

# 定义一个函数,用于将嵌套字典转换为字典列表  
def to_dict_list(score_dic):  
    return [score_dic[key] for key in score_dic]

# 测试代码  
score_dic = {1: {'A1': [60, 60, 60, 60, 60]}, 2: {'A2': [60, 60, 60, 60, 60]}, 3: {'A3': [60, 60, 60, 60, 60]}}  
write_score_file(score_dic, 'score.txt')  
score_dic_list = read_score_file('score.txt')  
for score_dic in score_dic_list:  
    print(score_dic)

# 将嵌套字典写入文件  
with open('score.txt', 'w') as f:  
    for score_dic in score_dic_list:  
        f.write(f"{score_dic['1']}:{score_dic['A1']}\n")  
    f.write("\n")

# 从文件中读取嵌套字典  
score_dic_list = read_score_file('score.txt')  
for score_dic in score_dic_list:  
    print(score_dic)