python课程实验9_文件与异常

实验9:文件与异常

1.实验目标及要求

(1)了解文件的分类。
(2)掌握文件的打开模式。
(3)掌握文本文件的读/写方法。
(4)掌握csv文件的读/写方法。
(5)理解异常的概念。
(6)熟悉异常处理的步骤。
(7)掌握文件操作异常处理的方法。

2. 实验主要内容

(1)文件徐公美.txt的内容为“邹忌修八尺有余,而形貌昳丽。朝服衣冠,窥镜,谓其妻曰:“我孰与城北徐公美?”其妻曰:“君美甚,徐公何能及君也?”城北徐公,齐国之美丽者也。忌不自信,而复问其妾曰:“吾孰与徐公美?”妾曰:“徐公何能及君也?”旦日,客从外来,与坐谈,问之客曰:“吾与徐公孰美?”客曰:“忌你太美”。编写程序将该文件中的“徐公”替换为“徐坤”。
代码部分:

with open("徐公美.txt","r+",encoding="UTF-8") as file:
    for line in file:
        if "徐公" in line:
            line=line.replace('徐公','徐坤',10)
            print(line)
            file.write(line)

输入:
输出:
邹忌修八尺有余,而形貌昳丽。朝服衣冠,窥镜,谓其妻曰:“我孰与城北徐坤美?”其妻曰:“君美甚,徐坤何能及君也?”城北徐坤,齐国之美丽者也。忌不自信,而复问其妾曰:“吾孰与徐坤美?”妾曰:“徐坤何能及君也?”旦日,客从外来,与坐谈,问之客曰:“吾与徐坤孰美?”客曰:“忌你太美”。

(2)文件score.txt保存了学生的平时成绩和期末成绩,内容如下:
学号,平时成绩,期末成绩
9999180101,77,88
9999180102,91,85
9999180103,87,96
9999180104,70,68
9999180105,86,72
编写程序读取所有成绩,计算总评成绩(四舍五入到整数),其中总评成绩=平时成绩40%+期末成绩60%。最后按总评成绩降序排列后保存至一个新的文件内。

代码部分:

import csv

def read_file():
    result=[]
    with open(r'score.txt', 'r', encoding='utf-8') as f:
        for line in f:
            line = line[:-1]
            result.append(line.split(','))
    for line in result:
        # 四舍五入
        x=round(int(line[1])*0.4+int(line[2])*0.6,0)
        line.append(x)
    return result

def sort_file(file):
    return sorted(file, key=lambda x: int(x[3]), reverse=True)

score=sort_file(read_file())
# 写入到csv文件中
f=open(r'score.csv','w',encoding='utf-8')
csvwrite=csv.writer(f)
for lis in score:
    csvwrite.writerow(lis)

输入:
输出:

(3)文件data.txt中存放了整数:“34,12,78,56”,各整数之间使用英文逗号分隔,编写程序读取该文件中的所有整数,将其升序排列后保存至一个新的文件内。
代码部分:

import csv

def print_data():
    with open("data.txt","r+",encoding="UTF-8") as file:
        for line in file:
            lin=line.split(',')
            # 输出四个整数
            for l in lin:
                print(l,end=' ')
            print()
        return lin

# 升序排列
data=print_data()
data.sort()

f=open(r'data.csv','w',encoding='utf-8')
csvwrite=csv.writer(f)
csvwrite.writerow(data)

输入:
输出:

3.心得体会

对于文件操作来说,我感觉是不太好理解的,对于今天做的实验来说,我卡壳时间还是很长的,因为疫情还没返校,没能听老师讲课,自己学习了一部分终究还是抵不过课堂上教的。所以做起来还是很吃力的,还是要把这部分内容再研究研究,熟悉一下文件操作的内容。感觉有好几点都没怎么想明白:第一题使用到的字符串替换这一点还真给忘记了,然后既要打开文件,又要将修改的内容写入到该文件中,要将权限改成可读可写模式,r+,w+。第二个没想明白怎么求出综合成绩后直接把文件内容进行排序。所以文件操作这方面还得继续学习一下了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值