1、open()语法

open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])

open函数使用一个文件名作为唯一的强制参数,然后返回唯一的文件对象。

open:函数有很多的参数,常用的是file,mode和encoding
file:文件位置,需要加引号;
mode文件打开模式,有读、写;
buffering的可取值有0,1,>1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小;
encoding表示的是返回的数据采用何种编码,一般采用utf8或者gbk;
errors的取值一般有strict,ignore,当取strict的时候,字符编码出现问题的时候,会报错,当取ignore的时候,编码出现问题,程序会忽略而过,继续执行下面的程序。
newline可以取的值有None, \n, \r, ”, ‘\r\n’用于区分换行符,但是这个参数只对文本模式有效;

2、 Python中file()与open()区别

两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,托福口语时间这两种文件打开方式有本质的区别,file为文件类,用file()来打开文件,相当于这是在构造文件类,而用open()打开文件,是用python的内建函数来操作,建议使用open;

3、文件打开—转义符的使用

复制文件的路径,打开文件:

出现打开错误,直接复制路径打开报错,是因为”\”符号在python中会被视为转义符,此时传入的路径就出现差错;那我们可以采取修改路径的方式,将”\”改为”/”:

或者使用最常规的操作:在含有转义符的字符串前加‘r’表示字符串内按原始含义解释,不做转义处理;这里的r相当于正则表达的操作;

python open函数源码 python open函数encoding_取值

4、参数mode文件打开模式的基本取值

常见的打开模式如图:

python open函数源码 python open函数encoding_取值_02

常见的mode取值组合:

  • r或rt 默认模式,文本模式读
  • rb 二进制文件
  • w或wt 文本模式写,打开前文件存储被清空
  • wb 二进制写,文件存储同样被清空
  • a 追加模式,只能写在文件末尾
  • a+ 可读写模式,写只能写在文件末尾
  • w+ 可读写,与a+的区别是要清空文件内容
  • r+ 可读写,与a+的区别是可以写到文件任何位置

r:打开文件只读模式,查看文件内容

w:打开写入write模式,重新写入的内容会替代原内容

a:打开添加模式,但是添加的内容在文尾

r+:在写入文件前,我们在上面那段代码中加上一句f.seek(0),用来定位写入文件写入位置(文件开头),直接覆盖字符数(注意\n也是一个字符)

  • f.seek(n)将在n位置写入

5、其他测试
f.read()读取整个文件

f.readline()读取一条一条的信息

f.readlines()读取所有的信息,返回元素列表