python入门-day12: 文件操作(python文件操作总结)
itomcoil 2025-03-24 17:23 6 浏览
文件操作 的内容,包括读写文本文件、使用 with 语句,最后通过一个练习(将学生成绩保存到文件并读取)帮你把知识点串起来。我会用简单易懂的语言,确保新手也能轻松掌握。
Day 12: 文件操作
1. 读写文本文件(open、read、write)
- 什么是文件操作?
- 文件操作就是 Python 读写文件内容的技能,比如把数据保存到文件,或从文件读取数据。
- 就像在电脑上写日记(保存)或看日记(读取)。
- 打开文件:open()
- 用 open(文件名, 模式) 打开文件。
- 常用模式:
- 'r': 读取(默认模式),文件不存在会报错。
- 'w': 写入,会覆盖原内容,文件不存在会新建。
- 'a': 追加,写在文件末尾,不覆盖。
- 例子:
- python
- file = open("test.txt", "w") # 打开文件准备写入
- 读取文件:read()
- 用 read() 读取全部内容,或者用 readline() 读一行。
- 例子:
- python
- file = open("test.txt", "r") content = file.read() print(content) file.close() # 关闭文件
- 写入文件:write()
- 用 write() 把内容写入文件。
- 例子:
- python
- file = open("test.txt", "w") file.write("Hello, Python!") file.close() # 关闭文件
- 注意:
- 操作完文件要用 close() 关闭,否则可能数据没保存或占用资源。
2. with 语句
- 什么是 with 语句?
- with 是一种更安全的文件操作方式,自动关闭文件,不用手动写 close()。
- 就像借书时自动还书,不用担心忘记。
- 语法:
- python
- with open(文件名, 模式) as 文件对象: # 操作文件
- 例子:
- 写入:
- python
- with open("test.txt", "w") as file: file.write("Hello with Python!") # 文件自动关闭
- 读取:
- python
- with open("test.txt", "r") as file: content = file.read() print(content) # 输出: Hello with Python!
- 优点:
- 简洁、安全,即使代码出错,文件也会正确关闭。
3. 练习:将学生成绩保存到文件并读取
- 需求:
- 创建一个学生成绩字典。
- 把成绩保存到文件(比如 scores.txt)。
- 从文件读取成绩并显示。
- 代码实现:
python
# 学生成绩字典
scores = {
"小明": 95,
"小红": 88,
"小刚": 92
}
# 步骤 1:保存到文件
with open("scores.txt", "w") as file:
for name, score in scores.items():
file.write(f"{name}: {score}\n") # 每行写一个学生
print("成绩已保存到 scores.txt")
# 步骤 2:读取并显示
with open("scores.txt", "r") as file:
content = file.read()
print("读取的学生成绩:")
print(content)
- 代码说明:
- 保存: 用 with 打开文件写入模式,把字典里的键值对写成 "名字: 成绩" 的格式,每行一个。
- 读取: 用 with 打开文件读取模式,用 read() 读取全部内容并打印。
- 运行结果:
成绩已保存到 scores.txt
读取的学生成绩:
小明: 95
小红: 88
小刚: 92
- 生成的文件 scores.txt 内容:
小明: 95
小红: 88
小刚: 92
- 加点挑战:读取后还原成字典
python
# 保存成绩
scores = {"小明": 95, "小红": 88, "小刚": 92}
with open("scores.txt", "w") as file:
for name, score in scores.items():
file.write(f"{name}: {score}\n")
# 读取并还原成字典
new_scores = {}
with open("scores.txt", "r") as file:
for line in file: # 逐行读取
name, score = line.strip().split(": ") # 去掉换行符,按 ": " 分割
new_scores[name] = int(score) # 转成整数存入字典
print("还原后的字典:", new_scores)
- 运行结果:
还原后的字典: {'小明': 95, '小红': 88, '小刚': 92}
- 代码说明:
- 逐行读取: 用 for line in file 遍历每行。
- 处理行: 用 strip() 去掉换行符,split(": ") 分割成名字和成绩。
- 还原字典: 把成绩转成整数,存回字典。
完整练习代码
python
# 定义学生成绩
scores = {"小明": 95, "小红": 88, "小刚": 92}
# 保存到文件
with open("scores.txt", "w") as file:
for name, score in scores.items():
file.write(f"{name}: {score}\n")
print("成绩已保存到 scores.txt")
# 读取并显示
with open("scores.txt", "r") as file:
print("读取的学生成绩:")
print(file.read())
# 读取并还原成字典
new_scores = {}
with open("scores.txt", "r") as file:
for line in file:
name, score = line.strip().split(": ")
new_scores[name] = int(score)
print("还原后的字典:", new_scores)
总结
- 读写文件:
- open() 打开文件,read() 读取,write() 写入,close() 关闭。
- with 语句:
- 自动管理文件,省心又安全。
- 练习:
- 把字典保存到文件,像记账本一样;读取回来还原,像查账一样。
- 心得: 文件操作就像管理日记本,with 是智能助手,让你不用操心关门。练习让我学会把内存里的数据存到硬盘,再拿回来用,感觉很实用!
如果有疑问,或者想加点功能(比如追加成绩、处理多个文件),随时告诉我哦!
相关推荐
- Python 最常用的语句、函数有哪些?
-
1.#coding=utf-8①代码中有中文字符,最好在代码前面加#coding=utf-8②pycharm不加可能不会报错,但是代码最终是会放到服务器上,放到服务器上的时候运行可能会报错。③...
- PyYAML 实用的使用技巧
-
作者:Reorx’sForge中文版:https://reorx.com/blog/python-yaml-tips-zh英文版:Tipsthatmaysaveyoufromthehe...
- 学习编程第127天 python中字符串与数值中的巧妙应用
-
今天学习的刘金玉老师零基础Python教程第10期,主要内容是python中字符串与数值中的巧妙应用。一、新建一个工程如图,新建一个工程。二、字符串与数值的区别变量只有为数值的时候,才能进行数学运算。...
- Python 必学!12 个 “开挂级” 内置函数深度解析(小白也能秒懂)
-
干货来了以下是Python中12个强大内置函数的深度解析,涵盖数据处理、代码优化和高级场景,助你写出更简洁高效的代码:一、数据处理三剑客1.map(function,iterable)作用:...
- Python浮点数保留两位小数的方法
-
技术背景在Python编程中,经常会遇到需要将浮点数保留特定小数位数的情况,比如在处理货币、统计数据等场景。然而,由于浮点数在计算机中采用二进制表示,存在精度问题,导致直接使用round函数有时无法得...
- DAY4-step5 Python示例说明 round()函数
-
Round()Round()是python提供的内置函数。它将返回一个浮点数,该浮点数将四舍五入到指定的精度。如果未指定要舍入的小数位,则将其视为0,并将舍入到最接近的整数。语法:round(flo...
- 第五个测试版本了,iOS 9 又有了什么变化?
-
今天的早些时候苹果发布了iOS9beta5,除去修复BUG和提升系统的稳定性外,苹果还带来了一些新功能。本次更新包括了对Carplay,WiFi以及Siri等功能的优化,Mac...
- 如何在 Python 中随机排列列表元素
-
在本教程中,我们将学习在Python中如何打乱列表元素顺序,随机排列列表元素。如何随机排列列表是一项非常有用的技能。它在开发需要选择随机结果游戏中非常有用。它还适用于数据相关的工作中,可能需要提取...
- Python获取随机数方法汇总
-
1.random.random()作用:随机生成一个[0,1)之间的浮点数importrandomprint(f'随机生成一个[0,1)之间的浮点数={random.random()}&...
- Python程序开发之简单小程序实例(11)小游戏-跳动的小球
-
Python程序开发之简单小程序实例(11)小游戏-跳动的小球一、项目功能用户控制挡板来阻挡跳动的小球。二、项目分析根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键...
- Keras人工智能神经网络 Regressor 回归 神经网络搭建
-
前期分享了使用tensorflow来进行神经网络的回归,tensorflow构建神经网络本期我们来使用Keras来搭建一个简单的神经网络Keras神经网络可以用来模拟回归问题(regression)...
- 我让DeepSeek写程序,有懂的看看写的对不对?
-
他写的时候就像教学生解方程一样,解释一段写一段,因为中间太长,我就截了最后的结果,应该是手机版本复制字数有限,可能也没复制全,有没有懂的看看写的对不对?下面是他写的最后结果。importrandom...
- Picker Wheel 线上随机抽签轮盘
-
#头条创作挑战赛#办公室经常会碰到「中午要吃什么?」、「要订哪家饮料店?」或「谁要去帮大家跑腿?」等各种情境,为了公平起见,我们可以使用随机方式进行抽签,这样一来就能确保公平公正性,其他人也就不...
- 思维链COT原理探究
-
TEXTANDPATTERNS:FOREFFECTIVECHAINOFTHOUGHTITTAKESTWOTOTANGO测试模型:PaLM-62B,GPT3,CODEXCOT元素...
- 永别了iPod!系列产品回顾,你用过几款?
-
中关村在线消息:就在本周,苹果官方宣布iPod系列将不再生产新品,现货售完即止。作为一个偏向音乐播放的系列,iPod系列想必陪伴了很多朋友的学生年代。近日有外媒总结了iPod系列的全部产品,来看看你用...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)