知识点
文件是保存在计算机存储设备上的一些信息或数据。通常把文件分为两类,文本文件和二进制文件。文本文件是简单的文本,二进制文件包含了只有计算机可读的二进制数据。
- 文件打开模式
- 文件读取与写入
- with 语句
文件操作
- 文件打开与关闭
- 文件读取与写入
文件打开
使用 open() 函数打开文件。
它需要两个参数,第一个参数是文件路径或文件名,第二个是文件的打开模式。
模式 | 说明 |
---|---|
“r” | 以只读模式打开,只能读取文件但不能编辑 / 删除文件的任何内容 |
“w” | 以写入模式打开,如果文件存在将会删除里面的所有内容,然后打开这个文件进行写入 |
“a” | 以追加模式打开,写入到文件中的任何数据将自动添加到末尾 |
默认的模式为只读模式。如果不提供任何模式,open() 函数将会以只读模式打开文件。
文件关闭
使用方法 close() 完成文件关闭。
打开文件完成相应处理后总是应该关闭文件,始终确保显式关闭每个打开的文件。因为程序能打开的文件数量是有上限的。如果超出了这个限制,程序可能会崩溃。
每个打开的文件关联的数据结构(文件描述符/句柄/文件锁…)都要消耗一些主存资源。因此选择关闭无用的文件可以减少内存浪费,并且文件打开时始终存在数据损坏或丢失的可能性。
文件读取
read(size) 有一个可选的参数 size,用于指定字符串长度。如果没有指定 size 或者指定为负数,就会读取并返回整个文件。
使用 read() 方法一次性读取整个文件。如果在文件已经读取完成后再一次调用 read() ,它会返回空字符串。
当文件大小为当前机器内存两倍时,就会产生问题。反之,会尽可能按比较大的 size 读取和返回数据。
使用 readline() 方法可以每次读取文件的一行。可以循环遍历文件对象来读取文件中的每一行。
使用 readlines() 方法读取所有行到一个列表中。
文件写入
通过 write() 方法打开一个文件。然后可以写入一些文本。
with 语句
使用 with 语句处理文件对象,它是 try-finally 块的简写。它会在文件用完后会自动关闭,就算发生异常也没关系。
总结
- 文件打开模式
- 文件读取与写入
- with 语句
最好一行一行的读取文本文件,不要一次性读取整个文件,因为有时候读取的文件可能比可用内存还大。
在读写完毕后一定要记得关闭文件,或者使用 with 语句。