zoukankan      html  css  js  c++  java
  • 文件操作

    1.文件处理流程

    (1)用open命令打开一个文件并赋值给一个变量,得到一个文件句柄

    (2)对文件句柄进行文件操作

    (3)用close命令关闭文件

    1 f = open("test","r+",encoding="utf-8")
    2 date = f.read()
    3 f.close()

    2.基本操作

      (1)打开文件

      f = open("文件绝对路径”,“文件要进行的操作”,编码格式)

       (2)文件操作命令

       1.f.read(),读取全部文件内容,文件较大时最好不要使用

          2.f.readline(),读一行文件内容

          3.f.readlines(),以列表形式读取文件全部内容

          4.f.close(),关闭文件

          5.f.write(),往文件中写入内容

          6.f.closed(),判断文件是否关闭

          7.f.seek(),移动光标至指定字节位置

          8.f.tell(),告知当前光标所在的字节位置

          9.f.truncate(),截断文件,从头至指定位置

          10.f.flush(),刷新  

     (3)文件编码

          原则:以什么方式保存就以什么方式打开,不指定编码格式python2默认ascii,python3默认utf-8

          编码:encode

          解码:decode

     (4)flush命令

      flush原理:

      1.文件操作是通过软件将文件从硬盘读到内存

      2.写入文件的操作也都是存入内存缓冲区buffer(内存速度快于硬盘,如果写入文件的数据都从            内存刷到硬盘,内存与硬盘的速度延迟会被无限放大,效率变低,所以要刷到硬盘的数据我们统            一往内存的一小块空间即buffer中放,一段时间后操作系统会将buffer中的数据一次性刷到硬盘)

      3.flush即,强制将写入的数据刷到硬盘

    1 进度条
    2 import sys,time
    3 for i in range(50):
    4     sys.stdout.write("%")
    5     sys.stdout.flush()
    6     time.sleep(1)

     (5)文件内光标移动>>>>>seek

       

          seek以字节方式读取,特别的,read(3)代表读取三个字符,seek有三种光标移动方式,             seek(位置,参数),seek有三种位置参数0,1,2

          seek(位置,0),表示相对于文件开头位置移动光标

          seek(位置,1),表示相对于上一次光标所在的位置移动光标

          seek(位置,2),表示相对于文件最后一个位置移动光标

    3.文件处理模式

    文件句柄 = open("文件路径","操作模式")

    打开文件的模式有:

      r , 只读模式   [默认模式,文件必须存在,不存在则抛出异常]

      w, 只写模式【不可读;不存在则创建;存在则清空内容】

      x,  只写模式【不可读;不存在则创建,存在则报错】

      a,   追加模式【可读;   不存在则创建;存在则只追加内容】

    "+"表示可以同时读写某个文件

      r+,  读写【可读,可写】

      w+,  写读【可读,可写】

      x+,   写读【可读,可写】

      a+,   写读【可读,可写】

    "b"表示以字节的方式操作

      rb 或 r+b

      wb 或 w+b

      xb 或 w+b

      ab 或 a + b

    注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

     

  • 相关阅读:
    centos7安装mysql8 ERROR! The server quit without updating PID file
    linux桌面系统开启windows远程访问
    intellij ide 激活(转发)
    intellij ide调用一个对象所有的set方法
    linux服务器磁盘挂载
    互联网公司研发团队服务器开发工具清单
    intellij ide 集成cmder
    maven 私服上有jar包但是却下载不下来
    java开发人员win10配置
    996 icu我能为你做什么?
  • 原文地址:https://www.cnblogs.com/lovezwfjc/p/9295797.html
Copyright © 2011-2022 走看看