Python文件操作之打开与关闭文件、读取文件、文件写入
更新时间:2026年11月04日 09:39:08 作者:我命由我12345
本文系统讲解Python中文件操作的核心流程:打开与关闭文件(open/close)、多种读取方式(read/readline/readlines/for循环/with语句)、写入与追加模式(w/a模式)、缓冲区管理(flush机制),重点强调with语句的自动资源管理优势及不同访问模式的适用场景
文件操作概述
- 文件操作主要是文件读写操作,即文件的读取和写入操作
- 文件操作 3 步走:打开文件 -> 读写文件 -> 关闭文件
一、打开与关闭文件
1、基本介绍
- 使用 open 函数,打开一个已存在的文件,或创建一个新文件
【文件对象】 = open(【文件路径】, 【访问模式】)
- 使用 close 函数,关闭打开的文件
【文件对象】.close()
2、访问模式
| 访问模式 | 说明 |
|---|---|
| r | 打开一个文件用于只读(默认访问模式) |
| w | 打开一个文件用于写入 如果文件该已存在,则打开文件并从开头开始写入,且原有内容会被删除 如果该文件不存在,则创建新文件进行写入 |
| a | 打开一个文件用于追加 如果该文件已存在,则新的内容将会被写入到原有内容之后 如果该文件不存在,则创建新文件进行写入 |
3、演示
- 创建并编辑
test.txt文件用于测试
Hello World Hello Python
- 测试代码
f = open("D:/pythonTestFile/test.txt", "r")
print(f)
print(type(f))
f.close()
# 输出结果 <_io.TextIOWrapper name='D:/pythonTestFile/test.txt' mode='r' encoding='cp936'> <class '_io.TextIOWrapper'>
二、读取文件
1、基本介绍
| 编号 | 方法 | 说明 |
|---|---|---|
| 1 | 【文件对象】.read(【长度】) | 读取指定长度的字节 如果没有指定长度,那么就表示读取文件中所有的数据 |
| 2 | 【文件对象】.readline() | 一次读取一行数据 |
| 3 | 【文件对象】.readlines() | 按照行的方式把整个文件中的数据进行一次性读取 返回一个列表,其中每一行的数据为一个元素 |
2、演示
- 创建并编辑
readTest.txt文件用于测试
Hello World 1 Hello World 2 Hello World 3 Hello World 4 Hello World 5
- read 方法
f = open("D:/pythonTestFile/readTest.txt", "r")
result1 = f.read(10)
result2 = f.read(10)
resultAll = f.read()
print(f"第 1 次读取 10 个字节:{result1}")
print(type(result1))
print(f"第 2 次读取 10 个字节:{result2}")
print(type(result2))
print(f"读取剩下的全部内容:{resultAll}")
print(type(resultAll))
f.close()
# 输出结果 第 1 次读取 10 个字节:Hello Worl <class 'str'> 第 2 次读取 10 个字节:d 1 Hello <class 'str'> 读取剩下的全部内容:World 2 Hello World 3 Hello World 4 Hello World 5 <class 'str'>
- readline 方法
f = open("D:/pythonTestFile/readTest.txt", "r")
line1 = f.readline()
line2 = f.readline()
print(line1)
print(type(line1))
print(line2)
print(type(line1))
f.close()
# 输出结果 Hello World 1 <class 'str'> Hello World 2 <class 'str'>
- readlines 方法
f = open("D:/pythonTestFile/readTest.txt", "r")
lines = f.readlines()
print(lines)
print(type(lines))
f.close()
# 输出结果 ['Hello World 1\n', 'Hello World 2\n', 'Hello World 3\n', 'Hello World 4\n', 'Hello World 5'] <class 'list'>
三、其他方式读取文件
1、for 语句读取
(1)基本介绍
for 【临时变量】 in 【文件对象】:
【执行的代码块】
(2)演示
f = open("D:/pythonTestFile/readTest.txt", "r")
for line in f:
print(line)
f.close()
# 输出结果 Hello World 1 Hello World 2 Hello World 3 Hello World 4 Hello World 5
2、with 语句读取
(1)基本使用
with open(【文件路径】, 【访问模式】) as 【文件对象】:
【执行的代码块】
- 注:使用 with 语句打开的文件,可以自动关闭
(2)演示
f = open("D:/pythonTestFile/readTest.txt", "r")
with open("D:/pythonTestFile/readTest.txt", "r") as f:
for line in f:
print(line)
# 输出结果 Hello World 1 Hello World 2 Hello World 3 Hello World 4 Hello World 5
四、文件写入
1、基本介绍
- 使用 w 访问模式打开文件
【文件对象】 = open(【文件路径】, "w")
- 使用 write 函数,向文件内写入内容
【文件对象】.write(【内容】)
- 使用 write 函数写入的内容会先存储在缓冲区,使用 flush 函数,才能向文件内真正写入内容
【文件对象】.flush()
- 注:close 函数自带 flush 函数的功能
2、演示
- 创建并编辑
writeTest.txt文件用于测试
Hello World 1 Hello World 2 Hello World 3
- 测试代码
f = open("D:/pythonTestFile/writeTest.txt", "w")
f.write("Hello Python")
f.write("\n")
f.write("Hello Python")
f.flush()
f.close()
- 此时的
writeTest.txt文件
Hello Python Hello Python
五、文件追加
1、基本介绍
- 使用 a 访问模式打开文件
【文件对象】 = open(【文件路径】, "a")
- 使用 write 函数,向文件内追加内容
【文件对象】.write(【内容】)
- 使用 write 函数追加的内容会先存储在缓冲区,使用 flush 函数,才能向文件内真正追加内容
【文件对象】.flush()
- 注:close 函数自带 flush 函数的功能
2、演示
- 创建并编辑
appendTest.txt文件用于测试
Hello World 1 Hello World 2 Hello World 3
- 测试代码
f = open("D:/pythonTestFile/appendTest.txt", "a")
f.write("\n")
f.write("Hello Python")
f.write("\n")
f.write("Hello Python")
f.flush()
f.close()
- 此时的
appendTest.txt文件
Hello World 1 Hello World 2 Hello World 3 Hello Python Hello Python
以上就是Python文件操作之打开与关闭文件、读取文件、文件写入的详细内容,更多关于Python文件实用操作的资料请关注脚本之家其它相关文章!
相关文章
Keras框架中的epoch、bacth、batch size、iteration使用介绍
这篇文章主要介绍了Keras框架中的epoch、bacth、batch size、iteration使用介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-06-06
一条命令解决mac版本python IDLE不能输入中文问题
本文通过一条命令帮助大家解决mac版本python IDLE无法输入中文问题,需要的朋友可以参考下2018-05-05
python pip install总是报错情况分析及解决办法
这篇文章主要给大家介绍了关于python pip install总是报错情况分析及解决办法,安装包时经常遇到报错,这里提供两种方式解决,文中通过图文介绍的非常详细,需要的朋友可以参考下2023-10-10


最新评论