python的文件操作重点记录
关于文件操作几种模式的说明
(1)只读模式r:打开文件后只能读取,不能进行其他操作,文件不存在会报错
(2)只写模式w:打开文件后只能写入,不能进行其他操作,若文件存在且有内容,则写入内容将原始内容全部覆盖,文件不存在则创建新文件
(3)追加模式a:与只写模式同,区别在于若文件存在且有内容,则将写入内容追加在原有内容后面
(4)二进制模式*b:如rb,wb,处理图片、视频等二进制文件,可以进行上述三种操作
(5)+模式:如r+,rb+,都表示以读写模式打开而文件,但只是增加权限,各种前缀模式的基本规则还是一样,如r+在文件不存在时会报错等,w+区别在于若文件存在且有内容,则写入内容只会从头开始往后覆盖,不会覆盖全部原始内容
关于文件的本质和几种读取操作
(1)文件本质是迭代器,可以导入collections模块,再使用isinstance(f,collections.iterator)方法来判定
(2)文件读取有四种方式,字节读取f.read(字节),单行读取f.readline(限制范围),按行读取f.readlines()(返回的是行列表),for in遍历
(3)文件读取方式选取:readline是每次读取某一行文件内容到内存,所以节省内存,但后期处理性能慢,适用于读取大规模文件中的部分进行处理;read和readlines是一次性读取整个文件到内存,耗内存,但后期处理性能快,适用于读取小规模文件。但是需要注意的是,如果需要读取大规模文件整体进行操作,为节省内存,可以使用read方法读取多次,每一次读取一定字节数,再使用循环分别进行处理
关于文件可读\可写性判定
(1)语法是f.readable()或f.writable()
(2)判定可读可写性可以用在程序的容错处理中,使程序不会报错,从而不影响后续程序运行
关于文件定位
(1)f.seek(偏移量)可以指定文件指针偏移量,f.tell()可以返回当前文件指针的位置(文件指针默认初始位置为文件头,即偏移量为0)
(2)在进行文件操作时,可以将文件指针进行移动,以获取期望的结果
关于文件关闭及文件处理中的缓冲区
(1)语法:f.close()
(2)文件操作完毕后一定要进行文件关闭,原因有二:1.可以释放文件占用的资源(文件开着的话系统会为其分配内存,以便后期处理);2.关闭文件会立即清空缓冲区的数据到磁盘文件
(3)缓冲区:在进行文件处理时,如写入操作,系统会将写入的内容先放在一个缓冲区中,待到操作结束或某个触发条件满足,再将缓冲区中的内容一次性写入到目标文件中,因此在文件关闭前,内容并没有真正写入文件中,当执行关闭操作时,系统就会清空缓冲区,将内容写入文件。这里有一个立即清空缓冲区的函数,f.flush(),作为触发条件,直接完成当前的操作
关于文件重命名
(1)导入os模块,使用模块中的rename()或renames()方法
(2)两种方法的区别是前者只能对文件进行重命名,后者可以同时对一个目录及其下的文件重命名
关于文件删除
(1)导入os模块,使用模块中的remove(f),rmdir(dir),removedirs(dir)方法
(2)三种方法区别是前者删除文件,中者删除空目录,后者同时删除目录及其下的空目录
关于目录转换操作
(1)导入os模块,使用模块中的getcwd(),chdir(dir),listdir(dir)方法
(2)三者作用分别是获取当前目录路径,改变当前目录路径和列举当前目录中的所用文件和目录(仅限一级,即目录中目录的内容不会被列举)
上一篇: 设计模式之结构类模式PK