文件操作概述
-
文件操作主要是文件读写操作,即文件的读取和写入操作
-
文件操作 3 步走:打开文件 -> 读写文件 -> 关闭文件
一、打开与关闭文件
1、基本介绍
- 使用 open 函数,打开一个已存在的文件,或创建一个新文件
python
【文件对象】 = open(【文件路径】, 【访问模式】)
-
使用 close 函数,关闭打开的文件
【文件对象】.close()
2、访问模式
| 访问模式 | 说明 |
|---|---|
| r | 打开一个文件用于只读(默认访问模式) |
| w | 打开一个文件用于写入 如果文件该已存在,则打开文件并从开头开始写入,且原有内容会被删除 如果该文件不存在,则创建新文件进行写入 |
| a | 打开一个文件用于追加 如果该文件已存在,则新的内容将会被写入到原有内容之后 如果该文件不存在,则创建新文件进行写入 |
3、演示
-
创建并编辑
test.txt文件用于测试Hello World
Hello Python -
测试代码
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 方法
python
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 方法
python
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 方法
python
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)基本介绍
python
for 【临时变量】 in 【文件对象】:
【执行的代码块】
(2)演示
python
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)演示
python
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 访问模式打开文件
python
【文件对象】 = open(【文件路径】, "w")
- 使用 write 函数,向文件内写入内容
python
【文件对象】.write(【内容】)
- 使用 write 函数写入的内容会先存储在缓冲区,使用 flush 函数,才能向文件内真正写入内容
python
【文件对象】.flush()
- 注:close 函数自带 flush 函数的功能
2、演示
-
创建并编辑
writeTest.txt文件用于测试Hello World 1
Hello World 2
Hello World 3 -
测试代码
python
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 访问模式打开文件
python
【文件对象】 = open(【文件路径】, "a")
- 使用 write 函数,向文件内追加内容
python
【文件对象】.write(【内容】)
- 使用 write 函数追加的内容会先存储在缓冲区,使用 flush 函数,才能向文件内真正追加内容
python
【文件对象】.flush()
- 注:close 函数自带 flush 函数的功能
2、演示
-
创建并编辑
appendTest.txt文件用于测试Hello World 1
Hello World 2
Hello World 3 -
测试代码
python
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