文件读写

前面的示例已经提到了open()函数,这个函数可以以指定的模式打开一个文件对象,要使用这个函数,只需要传入文件名和标识符。如果要打开的文件不存在,open()函数会抛出一个IOError并给出详细的错误码和错误信息。open()的使用格式是open(文件路径, 标识符)

打开的文件可以使用.read()方法一次性读取其中的数据,或者使用read(n)来读取指定文件长度,还可以使用.write()来向文件中写入数据,最后需要使用.close()方法关闭文件对象。为了操作的简便,可以使用with语句来完成文件的操作。

标识符是一个可以组合的字符串,其中使用几个字母来表示打开的模式。常见的组合有以下若干:

标识符模式
r只读模式,指针在头部
rb二进制只读模式,指针在头部
r+读写模式,指针在头部
rb+二进制读写模式,指针在头部
w只写模式,如果文件存在则覆盖,如果不存在则新建
wb二进制只写模式,如果文件存在则覆盖,如果不存在则新建
w+读写模式,如果文件存在则覆盖,如果不存在则新建
wb+二进制读写模式,如果文件存在则覆盖,如果不存在则新建
a追加模式,如果文件已存在则指针在末尾,如果不存在则新建
ab二进制追加模式,如果文件已存在则指针在末尾,如果不存在则新建
a+读写模式,如果文件已存在则指针在末尾,如果不存在则新建
ab+二进制读写模式,如果文件已存在则指针在末尾,如果不存在则新建

open()函数还可以接受一个encoding参数,用于指示打开的文件的编码,以及一个errors参数,用于指示出现错误后的处理方式,例如直接忽略(errors='ignore')。