第81集:文件读写基础

学习目标

  • 理解文件操作的基本概念
  • 掌握文件的打开、读取、写入和关闭操作
  • 学会使用不同的文件打开模式
  • 了解文件指针的概念和使用
  • 掌握with语句进行文件操作的最佳实践

一、文件操作概述

1.1 什么是文件

文件是存储在计算机存储设备上的数据集合。在Python中,我们可以通过内置的open()函数来操作文件。

1.2 文件操作的基本步骤

  1. 打开文件:使用open()函数打开文件,返回文件对象
  2. 读写文件:使用文件对象的方法进行读取或写入操作
  3. 关闭文件:使用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等格式的处理。

十、练习题

  1. 创建一个文本文件,写入三行内容,然后读取并打印出来。
  2. 使用with语句读取一个文件,并统计文件中的行数。
  3. 将一个文件的内容复制到另一个文件。
  4. 读取文件的前10个字符。
  5. 使用seek()和tell()方法,读取文件的中间部分内容。
« 上一篇 上下文管理器 下一篇 » 文本文件操作