鱼C论坛

 找回密码
 立即注册
查看: 815|回复: 3

[已解决]python文件操作

[复制链接]
头像被屏蔽
发表于 2021-11-27 19:57:02 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-11-27 20:01:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-27 20:58:29 | 显示全部楼层    本楼为最佳答案   
建议以后提问,贴代码和数据时用代码框,就算不用代码框也不要用图片,我觉得如果你贴的时文本的话,应该早就有人来回答了~~
with open("score1.txt","r") as fp_r:
    #第一行
    header = fp_r.readline().strip()+",总成绩" 
    
    #读取数据保存在records中
    records =[] 
    record=fp_r.readline()
    while record:
        records.append(record.split(","))
        record=fp_r.readline()

    #分数转化为int型,并计算个人总成绩
    for record in records:
        record[2] =int(record[2])
        record[3] =int(record[3])
        record[4] =int(record[4])
        record.append(int(record[2]+record[3]+record[4]))

    #为计算各科数据分列保存数据在zip_list中
    zip_list = list(zip(*records))
    
with open("score2.txt","w") as fp_w:
    #写入第一行
    fp_w.write(header)
    fp_w.write("\n")
    #写入每个学生数据
    for record in records:
        fp_w.write(",".join([str(item) for item in record]))
        fp_w.write("\n")
    #写入最高分
    fp_w.write(",".join(["统计",
                         "最高分",
                         str(max(zip_list[2])),
                         str(max(zip_list[3])),
                         str(max(zip_list[4])),
                         str(max(zip_list[5]))
                         ]
                        )
               )
    fp_w.write("\n")
    #写入最低分
    fp_w.write(",".join(["统计",
                     "最低分",
                     str(min(zip_list[2])),
                     str(min(zip_list[3])),
                     str(min(zip_list[4])),
                     str(min(zip_list[5]))
                     ]
                    )
           )
    fp_w.write("\n")
    #写入平均分
    record_no = len(records)
    fp_w.write(",".join(["统计",
                     "平均分",
                     str(sum(zip_list[2])/record_no),
                     str(sum(zip_list[3])/record_no),
                     str(sum(zip_list[4])/record_no),
                     str(sum(zip_list[5])/record_no)
                     ]
                    )
           )

注:这种类型的数据处理其实用numpy或者pandas最好了,不过我估计应该时不允许使用非python自带函数~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

头像被屏蔽
 楼主| 发表于 2021-11-28 09:32:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 18:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表