python深入之文件操作重点

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

  • 只读模式r:打开文件后只能读取,不能进行其他操作,文件不存在会报错
  • 只写模式w:打开文件后只能写入,不能进行其他操作,若文件存在且有内容,则写入内容将原始内容全部覆盖,文件不存在则创建新文件
  • 追加模式a:与只写模式同,区别在于若文件存在且有内容,则将写入内容追加在原有内容后面
  • 二进制模式*b:如rb,wb,处理图片、视频等二进制文件,可以进行上述三种操作
  • +模式:如r+,rb+,都表示以读写模式打开文件,但只是增加权限,各种前缀模式的基本规则还是一样,如r+在文件不存在时会报错等,w+区别在于若文件存在且有内容,则写入内容只会从头开始往后覆盖,不会覆盖全部原始内容

关于文件的本质和几种读取操作

  • 文件本质是迭代器,可以导入collections模块,再使用isinstance(f, collections.Iterator)方法来判定
  • 文件读取有四种方式,字节读取f.read(字节),单行读取f.readline(限制范围),按行读取f.readlines()(返回的是行列表),for in遍历
  • 文件读取方式选取:readline是每次读取某一行文件内容到内存,所以节省内存,但后期处理性能慢,适用于读取大规模文件中的部分进行处理;read和readlines是一次性读取整个文件到内存,耗内存,但后期处理性能快,适用于读取小规模文件。但是需要注意的是,如果需要读取大规模文件整体进行操作,为节省内存,可以使用read方法读取多次,每一次读取一定字节数,再使用循环分别进行处理

关于文件可读\可写性判定

  • 语法是f.readable()或f.writable()
  • 判定可读可写性可以用在程序的容错处理中,使程序不会报错,从而不影响后续程序运行

关于文件定位

  • f.seek(偏移量)可以指定文件指针偏移量,f.tell()可以返回当前文件指针的位置(文件指针默认初始位置为文件头,即偏移量为0)
  • 在进行文件操作时,可以将文件指针进行移动,以获取期望的结果

关于文件关闭及文件处理中的缓冲区

  • 语法:f.close()
  • 文件操作完毕后一定要进行文件关闭,原因有二:1.可以释放文件占用的系统资源(文件开着的话系统会为其分配内存,以便后期处理);2.关闭文件会立即清空缓冲区的数据到磁盘文件
  • 缓冲区:在进行文件处理时,如写入操作,系统会将写入的内容先放在一个缓冲区中,待到操作结束或某个触发条件满足,再将缓冲区中的内容一次性写入到目标文件中,因此在文件关闭前,内容并没有真正写入文件中,当执行关闭操作时,系统就会清空缓冲区,将内容写入文件。这里有一个立即清空缓冲区的函数,f.flush(),作为触发条件,直接完成当前的操作

关于文件重命名

  • 导入os模块,使用模块中的rename()或renames()方法
  • 两种方法的区别是前者只能对文件进行重命名,后者可以同时对一个目录及其下的文件重命名

关于文件删除

  • 导入os模块,使用模块中的remove(f),rmdir(dir),removedirs(dir)方法
  • 三种方法区别是前者删除文件,中者删除空目录,后者同时删除目录及其下的空目录

关于目录转换操作

  • 导入os模块,使用模块中的getcwd(),chdir(dir),listdir(dir)方法
  • 三者作用分别是获取当前目录路径,改变当前目录路径和列举当前目录中的所用文件和目录(仅限一级,即目录中目录的内容不会被列举)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值