Python文件处理时如何将条件判断得到的成绩评价写入TXT文件
问题原因
- 你在条件判断中仅打印了Remarks结果,没有将结果存储为可复用的变量
- 写入文件时仅写了
Remarks:前缀,没有追加对应的评价内容 - 原代码重复打开文件的逻辑存在错误,还可能出现文件资源未正常关闭的问题
解决方案
你只需要先把评价结果存为变量,再调用write方法写入即可,以下是修正后的完整代码:
name = input("Enter Name: ") course = input("Enter Course: ") section = input("Enter Section: ") sub1 = int(input("Enter 1st Grade: ")) sub2 = int(input("Enter 2nd Grade: ")) sub3 = int(input("Enter 3rd Grade: ")) sub4 = int(input("Enter 4th Grade: ")) sub5 = int(input("Enter 5th Grade: ")) avg = int((sub1+sub2+sub3+sub4+sub5)/5) print("Average mark:",avg) # 先把评价结果存为变量,方便后续打印+写入文件复用 if avg >=70: remarks = "Passed" else: remarks = "Failed" print(f"Remarks: {remarks}") # 推荐用with上下文管理器,自动处理文件关闭,不需要手动调用close with open("test.txt", "w+", encoding="utf-8") as f: f.write(f"{name}\n") f.write(f"{course}\n") f.write(f"{section}\n") f.write(f"The average is {avg}\n") f.write(f"Remarks: {remarks}\n") # 读取文件内容打印 f.seek(0) # 写完后指针在文件末尾,需要移到开头才能读取到全部内容 print(f.read())
核心改动说明
- 新增
remarks变量存储条件判断的结果,同时支持打印和写入文件两处复用 - 用
with语句管理文件操作,避免资源泄漏,不需要手动调用f.close() - 写入内容时用f-string格式化,减少重复的
write调用和换行符拼接,代码更简洁 - 补充
f.seek(0)将文件指针移到开头,读取文件内容时不会出现空内容的问题
内容的提问来源于stack exchange,提问作者SayCheese
相关产品推荐
相关产品推荐

