python文件读取/写入练习以及使用pandas进行简单的求平均值操作
声明:这是原创,本人学号:170310441 为防止作业雷同产生不必要的纠纷
这个其实是学校的一个作业,具体要求如下图:
首先并没有给出学生的成绩数据,所以我想了一会决定用random函数来生成1至100的随机数字作为成绩,这个文件命名为randomrandom.py。代码如下:
import random
import csv
file = open('number.txt', 'w', encoding='utf-8')
txt = []
header = []
for i in range(10):
txt.append([])
for j in range(50):
a = random.randint(1, 100)
txt[i].append(a)
# print(txt)
for i in range(50):
s1 = "李"
s2 = str(i)
s = s1 + s2
header.append(s)
# print(header)
with open('number.txt', 'w', encoding='utf-8', newline='') as f:
csv_write = csv.writer(f, delimiter=' ')
csv_write.writerow(header)
for r in txt:
csv_write.writerow(r)
使用了两个模块:random和csv。
random的randint函数可以用来生成一个随机数字,random.randint(1,100)的含义是生成1至100的一个随机数。最后结果是将这个10行50列的数据存放在名为txt的列表中。
第二个for循环是用来生成表头,,,也就是学生的姓名,我用的是李0,李1,李2.。。。。。。这样的名字(哈哈),十分方便。最后将这些名字存入header列表中。
最后一段是创建一个叫number的txt文本文件,存放的格式是CSV,将表头和数据依次写入。不是很懂CSV含义的童鞋看这边:https://baike.baidu.com/item/CSV/10739?fr=aladdin
这就是生成学生成绩数据的代码文件。
接着是求均值并将结果写入到源文件,给出代码:
import pandas as pd
import sys
class Logger(object):
def __init__(self, fileN="Default.log"):
self.terminal = sys.stdout
self.log = open(fileN, "a", encoding="utf-8")
def write(self, message):
self.terminal.write(message)
self.log.write(message)
def flush(self):
pass
def averageALL(data):
print(data.mean())
def averageOne(data, num):
s1 = "李"
s2 = str(num)
s = s1 + s2
print(data[s].mean())
def main():
n = input("输入需要查看的学生编号:")
data = pd.read_csv('number.txt', sep=' ')
averageOne(data, n)
sys.stdout = Logger("number.txt")
print("所有学生的平均成绩:")
averageALL(data)
if __name__ == '__main__':
main()
使用了sys和pandas这两个库,而pandas是三方库,需要用pip下载下来:
pip install pandas
Logger函数用来将出现在屏幕上的数据记录下来并写入到指定文件中去。
averageALL函数用来求所有学生的平均成绩。
averageOne函数用来求某个学生的平均成绩。
最后一个是main函数,不多做解释。
END
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)