1.open()

      open()用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用这个函数,如果该文件无法打开就会跑出 OSError。

  • 注意:使用open()方法一定要保证关闭文件对象,即调用close()方法。
  • open()函数常用形式是接收两个参数:文件名(file)和模式(mode)。

open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)

  • file:必需,文件路径或相对路径
  • mode:可选,表示文件打开模式
  • buffering:设置缓冲
  • encoding:一般使用utf-8
  • errors:报错级别
  • newline:区分换行符
  • closefd:传入的file参数类型
  • openner:设置自定义开启器,开启器的返回值必须是一个打开的文件描述符

open()使用mode参数 mode描述t文本模式(默认)x写模式,新建一个文件,如果该文件已存在则会报错。b二进制模式。+打开一个文件进行更新(可读可写)U通用换行模式(python3 不支持)r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。r+  打开一个文件用于读写。文件指针将会放在文件的开头。rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。wb  以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件比如图片等。w+打开一个文件用于读写。如果该文件已存在则打开文件,并从头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。wb+以二进制个事打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有的内容之后。如果该文件不存在,创建新文件进行写入。a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建文件用于读写。ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件结尾。如果该文件不存在,创建新文件用于读写

2.file对象

file对象使用open函数来创建,下表为file对象常用函数:

file对象相关函数 file.close()关闭文件。关闭文件后不能再进行读写操作。file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入到文件中,而不是被动的等待输出缓冲区写入。file.fileno()返回一个整型的文件描述符(file descriptor FD整型),可以用在如os模块的read方法等一些底层操作上。file.isatty()如果文件连接到一个终端设备返回True,否则返回Falsefile.next()

python3的file对象不支持next()方法。

返回文件下一行。

file.read(size)从文件读取指定的字节数,如果未给定或为负则读取所有。file.readline([size])读取整行,包括“\n”字符。file.readlines([sizeint])读取所有行返回列表,若给定sizeint字节的行,实际读取值可能比sizeint较大,因为需要填充缓冲区file.seek(offset[,whence])移动文件读取指针到指定位置file.tell()返回文件当前位置。file.truncate([size])从文件的首行首字符开始截断,截断文件为size个字符,无size表示从当前位置截断;截断之后后面的所有字符被删除,其中wins系统下换行代表2个字符大小file.write(str)将文件字符串写入文件,返回的是写入的字符长度file.writelines(sequence)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。