文件的基础操作
文件的打开、关闭与读写是文件的基础操作,任何复杂的文件操作都离不开这些操作。
1. 打开文件
Python 通过内置函数open()打开文件并返回文件对象,语法格式:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closedfd=True, opener=None)
-
参数说明:
file:指定文件名或文件路径;encoding:指定文件编码方式,默认值为None(使用系统默认编码,常见编码如 utf-8 等);mode:设置文件打开模式,基础模式包含r、w、a,可组合使用,常用模式见下表。
常用的文件打开模式
| 打开模式 | 名称 | 描述 |
|---|---|---|
| r 或 rb | 读取或二进制读取模式 | 以只读方式打开文本 / 二进制文件;文件不存在则无法打开;r 是默认模式 |
| w 或 wb | 写入或二进制写入模式 | 以只写方式打开文本 / 二进制文件;文件存在则清空内容,不存在则新建 |
| a 或 ab | 追加或二进制追加模式 | 以只写方式打开文本 / 二进制文件,在文件末尾追加数据(不清空原有内容);文件不存在则新建 |
| r + 或 rb+ | 读写或二进制读写模式 | 以读写方式打开文本 / 二进制文件;文件不存在则无法打开 |
| w + 或 wb+ | 读写或二进制读写模式 | 以读写方式打开文本 / 二进制文件;文件存在则清空内容,不存在则新建 |
| a + 或 ab+ | 追加或二进制追加读写模式 | 以读写方式打开文本 / 二进制文件,写入数据追加到末尾(不清空原有内容);文件不存在则新建 |
打开文件示例代码
file1 = open('E:\a.txt') # 以只读的方式打开E盘的文本文件a.txt
file2 = open('b.txt', 'w') # 以只写的方式打开当前目录的文本文件b.txt
file3 = open('c.txt', 'w+') # 以读写的方式打开文本文件c.txt
file4 = open('d.txt', 'wb+')# 以二进制读写的方式打开文本文件d.txt
2. 关闭文件
Python 中关闭文件有 2 种方式:
(1)close()方法
close()是文件对象的内置方法,无需传入参数,直接调用即可关闭已打开的文件。示例代码:
file.close() # 关闭已打开的文件对象file
(2)with语句
当文件操作步骤较多时,易遗漏关闭操作,Python 通过with语句实现文件自动关闭(预定义清理操作):
-
语法格式:
with open(文件路径, 打开模式) as 变量名: 代码段 -
执行逻辑:先调用
open()打开文件,将文件对象赋值给变量;执行代码段后,自动调用close()关闭文件。 -
示例代码:
with open('a.txt', 'w+') as file: print('我是with语句')注:此方式无需手动调用
close(),文件使用后会自动关闭。
思考:为什么要及时关闭文件?
系统可打开的文件数量有限(每打开一个,可用数量减 1);打开的文件会占用系统资源,过多会降低性能;若文件以缓冲方式打开,磁盘与内存的读写不即时,程序异常关闭可能导致数据丢失。因此需主动关闭不再使用的文件。