欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python的文件操作重点记录

程序员文章站 2022-11-09 09:25:56
关于文件操作几种模式的说明 (1)只读模式r:打开文件后只能读取,不能进行其他操作,文件不存在会报错 (2)只写模式w:打开文件后只能写入,不能进行其他操作,若文件存在且有内容,则写入内容将原始内容...

关于文件操作几种模式的说明

(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)三者作用分别是获取当前目录路径,改变当前目录路径和列举当前目录中的所用文件和目录(仅限一级,即目录中目录的内容不会被列举)