第81集:文件读写基础
学习目标
- 理解文件操作的基本概念
- 掌握文件的打开、读取、写入和关闭操作
- 学会使用不同的文件打开模式
- 了解文件指针的概念和使用
- 掌握with语句进行文件操作的最佳实践
一、文件操作概述
1.1 什么是文件
文件是存储在计算机存储设备上的数据集合。在Python中,我们可以通过内置的open()函数来操作文件。
1.2 文件操作的基本步骤
- 打开文件:使用
open()函数打开文件,返回文件对象 - 读写文件:使用文件对象的方法进行读取或写入操作
- 关闭文件:使用
close()方法关闭文件,释放资源
二、打开文件
2.1 open()函数语法
open(file, mode='r', encoding=None)参数说明:
file:文件路径(相对路径或绝对路径)mode:打开模式(默认为'r')encoding:编码方式(如'utf-8')
2.2 常用打开模式
| 模式 | 描述 | 文件不存在时 |
|---|---|---|
| 'r' | 只读模式(默认) | 抛出异常 |
| 'w' | 写入模式(覆盖) | 创建新文件 |
| 'a' | 追加模式 | 创建新文件 |
| 'r+' | 读写模式 | 抛出异常 |
| 'w+' | 读写模式(覆盖) | 创建新文件 |
| 'a+' | 读写模式(追加) | 创建新文件 |
二进制模式:
- 'rb':二进制只读
- 'wb':二进制写入
- 'ab':二进制追加
三、读取文件
3.1 read()方法
读取整个文件内容,返回一个字符串。
file = open('example.txt', 'r', encoding='utf-8')
content = file.read()
print(content)
file.close()3.2 readline()方法
每次读取一行内容。
file = open('example.txt', 'r', encoding='utf-8')
line1 = file.readline()
line2 = file.readline()
print(line1)
print(line2)
file.close()3.3 readlines()方法
读取所有行,返回一个列表,每个元素是一行内容。
file = open('example.txt', 'r', encoding='utf-8')
lines = file.readlines()
for line in lines:
print(line, end='')
file.close()3.4 遍历文件对象
直接遍历文件对象,逐行读取。
file = open('example.txt', 'r', encoding='utf-8')
for line in file:
print(line, end='')
file.close()四、写入文件
4.1 write()方法
写入字符串到文件。
file = open('output.txt', 'w', encoding='utf-8')
file.write('Hello, Python!\n')
file.write('文件写入示例')
file.close()4.2 writelines()方法
写入字符串列表到文件。
lines = ['第一行\n', '第二行\n', '第三行\n']
file = open('output.txt', 'w', encoding='utf-8')
file.writelines(lines)
file.close()五、文件指针
5.1 文件指针概念
文件指针表示当前读写的位置。打开文件时,指针默认在文件开头。
5.2 常用指针操作方法
| 方法 | 描述 |
|---|---|
tell() |
返回当前文件指针位置 |
seek(offset) |
移动文件指针到指定位置 |
file = open('example.txt', 'r', encoding='utf-8')
print(file.tell()) # 输出: 0
file.read(10)
print(file.tell()) # 输出: 10
file.seek(0) # 回到文件开头
print(file.tell()) # 输出: 0
file.close()六、with语句(推荐)
6.1 为什么使用with语句
使用with语句可以自动管理文件的打开和关闭,即使发生异常也能正确关闭文件。
6.2 with语句语法
with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)6.3 with语句的优势
- 自动关闭文件
- 异常安全
- 代码更简洁
七、最佳实践
7.1 使用with语句
始终使用with语句进行文件操作,避免忘记关闭文件。
7.2 指定编码
在打开文本文件时,始终指定编码方式(推荐使用'utf-8')。
7.3 处理文件不存在的情况
使用try-except处理文件不存在的情况。
try:
with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
except FileNotFoundError:
print('文件不存在')7.4 及时关闭文件
如果不使用with语句,确保在操作完成后及时关闭文件。
八、常见问题
8.1 文件编码问题
如果遇到编码错误,尝试使用不同的编码方式:
- 'utf-8':通用编码
- 'gbk':中文Windows默认编码
- 'gb2312':简体中文编码
8.2 文件路径问题
- 使用原始字符串处理Windows路径:
r'C:\path\to\file.txt' - 使用正斜杠:
'C:/path/to/file.txt' - 使用双反斜杠:
'C:\\path\\to\\file.txt'
8.3 换行符问题
- Windows:
\r\n - Linux/Mac:
\n - Python会自动处理换行符
九、总结
本集学习了文件读写的基础知识:
- 文件操作的基本步骤:打开、读写、关闭
- 常用的文件打开模式
- 读取文件的方法:read()、readline()、readlines()
- 写入文件的方法:write()、writelines()
- 文件指针的概念和使用
- with语句的最佳实践
掌握这些基础知识后,我们将在后续章节学习更高级的文件操作,如文本文件、二进制文件、CSV、JSON等格式的处理。
十、练习题
- 创建一个文本文件,写入三行内容,然后读取并打印出来。
- 使用with语句读取一个文件,并统计文件中的行数。
- 将一个文件的内容复制到另一个文件。
- 读取文件的前10个字符。
- 使用seek()和tell()方法,读取文件的中间部分内容。