1 创建和打开文件
1.1 open()函数
格式如下:
file = open(filename[, mode[, buffering]])
参数说明:
- file :被创建文件对象。
- filename : 打开文件的完整路径(若在当前文件同一目录下可以只写文件名)。
- mode : 可选参数,用于指定文件的打开方式,默认为 r 。
值 | 说明 | 注意 |
r | 只读模式 | 文件必须存在 |
rb | 二进制打开文件,只读模式 | 文件必须存在 |
r+ | 打开文件后,可以读取或写入新内容覆盖原有内容 | 文件必须存在 |
rb+ | 二进制打开文件,读写模式 | 文件必须存在 |
w | 只写模式 | 文件存在则覆盖,文件不存在则新建文件 |
wb | 二进制打开文件,只写模式 | 文件存在则覆盖,文件不存在则新建文件 |
w+ | 打开文件后,清空原文件内容,采取读写模式 | 文件存在则覆盖,文件不存在则新建文件 |
wb+ | 二进制打开文件,读写模式 | 文件存在则覆盖,文件不存在则新建文件 |
a | 文件存在则指针放在末尾;文件不存在则创建新文件写入 | |
ab | 以二进制打开,其余如 a 相同 | |
a+ | 以读写模式打开,在 a 基础上可以读取和写入 | |
ab+ | 以二进制读写模式打开,在 a 基础上可以读取和写入 |
- buffering :可选参数,指定文件缓冲模式,0表示不缓冲,1表示缓冲;如果大于1表示缓冲区的大小。默认为缓冲模式。
注意:有时候open函数需要添加可选参数encoding来设置编码:
file = open('happy.txt', 'r', encoding = 'utf-8')
2 关闭文件
2.1 close()函数
使用方法如下:
file.close()
2.2 with语句
with语句可以避免没有关闭文件的情况发生,使用with语句可以保证语句执行完毕后关闭已经打开的文件。语法格式如下:
with expression as target:
body
参数如下:
- expression:指定表达式,可以是open()函数。
- target:指定变量,将打开文件保存在变量内。
- body:指定执行语句。
例子:
with open('happy.txt', 'w') as f :
pass
3 写入文件
我们用write()函数写入信息,格式如下:
file.write(string)
例子:
# 打开文件
open('happy.txt', 'w')
file.write('I am happy today.')
# 关闭文件对象
file.flush()
注意:向文件内写入内容的时候,如果不想马上关闭文件,可以使用flush()方法,把缓冲区内容写入文件,这样也能保证数据全部写入磁盘。
4 读取文件
4.1 read()函数
我们用read()函数读取文件,格式如下:
file.read([size])
参数说明:
- file:打开文件对象。
- size:可选参数,指定读取字数。
read([size])方法读取文件时是从头读起。如果想要读取部分内容,可以用seek()方法将文件指针移动至新的位置,然后再读取。格式如下:
file.seek(offset[, whence])
参数说明:
- file:打开文件对象。
- offset:指定移动字符个数。
- whence:指定从何位置开始。0表示从头,1表示从当前位置,2表示从末尾。
4.2 readline()函数
readline()函数可以一次读取一行文件,格式如下:
file.readline()
4.3 readlines()函数
readlines()函数可以读取全部行内容,格式如下:
file.readlines()
注意:如果文件较大时,尽量避免一次性读取而造成内存不足的问题。