python 实验九 文件与异常

本文通过一系列实例,详细介绍了Python中如何进行文件的读写操作,包括一次性读取和逐行读取文件内容,计算平均分,处理购物清单,读写CSV文件,统计文本行数与单词个数,替换文本内容,追加文件,添加行号,统计词频,处理逗号分隔的整数列表,以及合并网站名称和网址等操作,同时涵盖了异常处理的实践应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.新建一个文本文件yzy.txt,文件内容如下
慈母手中线,游子身上衣。
临行密密缝,意恐迟迟归。
谁言寸草心,报得三春晖。
编写程序输出该文件的内容,要求使用一次性读入整个文件内容和逐行读取文件内容的两种方式。

file = open('yzy.txt', 'r', encoding='utf-8')
print(file.read())
file.close()

file = open('yzy.txt', 'r', encoding='utf-8')
print(file.readline())
print(file.readline())
print(file.readline())
print(file.readline())
file.close()

输出结果:

慈母手中线,游子身上衣。
临行密密缝,意恐迟迟归。
谁言寸草心,报得三春晖。
慈母手中线,游子身上衣。

临行密密缝,意恐迟迟归。

谁言寸草心,报得三春晖。

2.计算运动会某个参赛者选手得分。假设共有10个裁判,每个裁判给该选手打分(分值0~10之间)后,去掉一个最高分和一个最低分之后的平均分极为该运动员的最后得分。某位选手的得分数据保存在文件中,文件内容如下:
9.37  9.52  9.98   10  9.85  9.73  9.93   9.76  9.81  9.08
各数据之间使用一个空格分隔。请编写程序从文件中读取该选手的成绩并计算最后得分。

file = open('9-2.txt', 'r', encoding='utf-8')
content = file.read()
file.close()

scores = [float(n) for n in content.split()]
print(scores)

maxScore = max(scores)
minScore = min(scores)
scores.remove(maxScore)
scores.remove(minScore)
print(scores)
print(sum(scores) / len(scores))

输出结果:

[9.37, 9.52, 9.98, 10.0, 9.85, 9.73, 9.93, 9.76, 9.81, 9.08]
[9.37, 9.52, 9.98, 9.85, 9.73, 9.93, 9.76, 9.81]
9.74375

3.文件a.txt中每一行内容分别为购买的商品名称,价格,数量,求出所购商品花费的总费用。
apple 10 3
focus 100000 1
surface 8000 2
thinkpad 7000 3
chicken 10 3

cost = []
with open('a.txt', 'r') as file:
    for row in file.readlines():
        ls = row.split(' ')
        cost.append(int(ls[1]) * int(ls[2]))
print(sum(cost))

输出结果:

137060

4.新建一个文本文件score.csv,用来保存10名考生3门课程成绩,内容如下:
考号,程序设计,细胞生物,生理学
10153450101,72,96,88
10153450102,68,88,73
10153450103,63,63,66
10153450104,95,64,65
10153450105,89,88,57
10153450106,77,87,77
10153450107,67,64,97
10153450108,44,99,64
10153450109,82,73,75
10153450110,79,78,85
以上各数据均使用英文逗号分隔。请编写程序读取文件内容,统计每门课程的平均成绩,最高分和最低分。

# 统计score.CSV文件中每门课程的平均成绩、最高分和最低分。

# 方法一
with open('score.csv', "r", encoding='utf-8') as file:
    LS = list(file)
    del LS[0]  # 去掉标题行

ls1, ls2, ls3 = [], [], []
for s in LS:
    x = s[:-1].split(',')  # 因为最后一个字符是回车符\n,s[:-1]相当于去掉了最后的回车符
    ls1.append(int(x[1]))
    ls2.append(int(x[2]))
    ls3.append(int(x[
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值