Python进阶:Python的文件读写
最新案例动态,请查阅Python进阶:Python的文件读写。小伙伴们快来领取华为开发者空间进行实操吧!
1 概述
1.1 案例介绍
在Python中,文件读写是一个基础而重要的操作。Python提供了多种方式来读取和写入文件,包括使用内置的open函数和几种不同的模式。
1.2 适用对象
- 个人开发者
- 高校学生
1.3 案例时间
本案例总时长预计40分钟。
1.4 案例流程

说明:
① 用户开通华为开发者空间,进入云主机;
② 在CodeArts IDE 编写代码进行Python文件读写学习。
1.5 资源总览
本案例预计花费总计0元。
| 资源名称 | 规格 | 单价(元) | 时长(分钟) |
|---|---|---|---|
| 华为开发者空间-云主机 | 鲲鹏通用计算增强型 kc2 | 4vCPUs | 8G | Ubuntu | 免费 | 40 |
2 准备开发环境
2.1 配置云主机并进入
参考“10分钟玩转云主机” 案例介绍中“2.2 申请云主机”章节内容完成华为开发者空间云主机申请与配置,配置云主机建议:“CPU架构”选择“X86”,“操作系统”选择“Ubuntu”。

然后点击“进入桌面”进入云主机。

2.2 使用CodeArts IDE创建工程
参考“初识云主机:CodeArts IDE入门”案例介绍“3.1 新建工程”章节新建工程。
新建的工程包含如下三个目录文件部分:
| 目录文件 | 说明 |
|---|---|
| .arts | CodeArts的配置文件 |
| venv | 虚拟环境 |
| main.py | 默认生成的入口文件 |

3 Python中的文件读写
文件读写是计算机中最常见的IO操作,在Python中进行文件读写操作是一个非常基础且重要的技能,掌握这一技能对于开发高效、可靠的程序至关重要。常见的文件格式有:文本文件、图片文件、音视频文件、数据文件等。
3.1 打开文件
在Python中,使用open函数来打开文件。语法如下:
open(file_name,mode,encoding)
- file_name是要打开的文件名
- mode是打开文件的模式,默认为只读模式’r’
- encoding是编码,默认情况下使用utf-8
常见的模式包括: - ‘r’:默认只读模式
- ‘w’:写入模式,会覆盖原有内容
- ‘a’:追加模式,在文件末尾添加内容
- ‘b’:二进制模式,与其他模式组合使用,如’rb’或’wb’
实现在开发者空间打开一个文件。首先在开发者空间桌面创建一个demo.txt的文件,然后按照如下代码进行打开文件操作。
代码示例:
import os file=open("/home/developer/Desktop/demo.txt",'rt+') print(file) 3.2 写入文件
3.2.1 写入文本
在Python中,使用write函数可以向文件中写入内容:
实践:打开demo.txt文件,写入"hello world 你好世界"。
注意:python是一个依赖于格式的语言,代码需要保持和样例相同的缩进。
Step1:删除“main.py”中原有内容,输入下列代码。
代码示例:
import os if __name__ == '__main__': print(os.getcwd()) #输出 /home/developer/CodeArtsProjects/PythonDemo with open("demo.txt","w",encoding="utf-8") as file: file.write("Hello World\n") file.write("你好世界") Step2:点击右上角“运行”按钮之前,左边工程目录下没有demo.txt文件。

Step3:点击右上角“运行”按钮,左边工程目录下出现demo.txt文件并且写入了数据。

3.2.2 追加内容
使用‘a’模式可以在文件末尾追加内容:
实践:在demo.txt文件末尾追加内容:“我是新加的内容”。
Step1:删除“main.py”中原有内容,输入下列代码。
import os if __name__ == '__main__': print(os.getcwd()) #输出 /home/developer/CodeArtsProjects/PythonDemo with open("demo.txt","a",encoding="utf-8") as file: file.write("\n我是新加的内容") Step2:点击右上角“运行”按钮, demo.txt文件中追加了新内容。

3.2.3 写入多行
使用writelines方法可以一次性写入多行内容:
实践:在demo.txt文件中一次性写入多行内容。
Step1:删除“main.py”中原有内容,输入下列代码。
import os if __name__ == '__main__': print(os.getcwd()) #输出 /home/developer/CodeArtsProjects/PythonDemo lines=['\n我是第一行内容\n','我是第二行内容\n','我是第三行内容\n'] with open("demo.txt","a",encoding="utf-8") as file: file.writelines(lines) Step2: 点击右上角“运行”按钮,左边工程目录下的demo.txt文件中写入多行数据。

3.3 读取文件
3.3.1 读取全部内容
使用read方法可以一次性读取文件的全部内容:
实践:一次性读取demo.txt文件中所有内容。
Step1:删除“main.py”中原有内容,输入下列代码。
if __name__ == '__main__': with open("demo.txt","r",encoding="utf-8") as file: content = file.read() print(content) Step2:点击右上角“运行”按钮,控制台打印出读取的内容。

3.3.2 按行读取
使用readlines方法可以按行读取文件内容:
实践:按行读取demo.txt文件中所有内容。
Step1:删除“main.py”中原有内容,输入下列代码。
if __name__ == '__main__': with open("demo.txt","r",encoding="utf-8") as file: lines = file.readlines() for line in lines: print(line.strip())# 去除换行符 Step2:点击右上角“运行”按钮,控制台打印出读取的内容。

3.4 高级库与模块
3.4.1 csv模块
3.4.1.1 写入CSV文件
实践:向demo.csv文件中写入内容。
Step1:删除“main.py”中原有内容,输入下列代码。
import csv if __name__ == '__main__': data = [['姓名', '年龄', '城市'],['张三', 30, '北京'],['李四', 25, '上海']] with open("demo.csv","w",encoding="utf-8") as file: writer = csv.writer(file) writer.writerows(data) Step2:点击右上角“运行”按钮,左边工程目录下出现demo.csv文件并且写入了数据。

3.4.1.2 读取CSV文件
实践:读取demo.csv文件中的内容,在控制台输出内容。
Step1:删除“main.py”中原有内容,输入下列代码。
import csv if __name__ == '__main__': with open("demo.csv","r",encoding="utf-8") as file: reager = csv.reader(file) for row in reager: print(row) Step2:点击右上角“运行”按钮,控制台打印出读取的内容。

3.4.2 json模块
3.4.2.1 写入JSON文件
实践:向data.json文件中写入内容。
Step1:删除“main.py”中原有内容,输入下列代码。
import json if __name__ == '__main__': data = {'name': 'Jack','age': 30,'city': 'Nanjing'} with open("data.json","w",encoding="utf-8") as file: json.dump(data,file,indent=4)# indent用于格式化输出 Step2:点击右上角“运行”按钮,左边工程目录下出现data.json文件并且写入了内容。

3.4.2.2 读取JSON文件
实践:读取data.json文件中的内容,在控制台输出内容。
Step1:删除“main.py”中原有内容,输入下列代码。
import json if __name__ == '__main__': with open("data.json","r",encoding="utf-8") as file: data = json.load(file) print(data) Step2:点击右上角“运行”按钮,控制台打印出读取的内容。

3.5 文件读写综合案例
结合上面知识点,完成一个记事本应用的开发,实现一个简单的记事本功能:
- 允许用户输入内容并保存至记事本
- 读取记事本内容
3.5.1 模块代码实现
代码实现:
def read_file(filename): try: with open(filename, 'r', encoding='utf-8') as file: content = file.read() print("文件内容:") print(content) except FileNotFoundError: print("文件不存在!") def write_file(filename): new_content = input("请输入要保存的内容:") with open(filename, 'a', encoding='utf-8') as file: file.write(new_content + '\n') print("内容已保存!") def main(): filename = 'notes.txt' # 默认文件名 while True: print("\n记事本功能:") print("1. 添加日记") print("2. 查看日记") print("3. 退出记事本") choice = input("请选择操作(1/2/3):") if choice == '1': write_file(filename) elif choice == '2': read_file(filename) elif choice == '3': print("退出记事本。") break else: print("无效的选择,请重新输入!") if __name__ == "__main__": main() 3.5.2 运行结果验证
点击右上角“运行”按钮,输入数字1:添加日记,数字2:查看日记,数字3:退出记事本

输入数字1,按下enter键,输入内容:今天开始学习Python文件读写,按下enter键:

输入数字2,按下enter键,控制台显示输入的内容:

输入数字3,退出记事本:
