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

    本节导读

    • 操作文件的步骤
    • 打开文件
    • 操作文件
    • 关闭文件
    • 注意事项

    一操作文件时要经历如下步骤:

    • 打开文件
    • 操作文件
    • 关闭文件

    一、打开文件

    打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。

    文件句柄 = open('文件路径', '模式')

    打开文件的模式有:

    • r ,只读模式【默认】
    • w,只写模式【不可读;不存在则创建;存在则清空内容;】
    • x, 只写模式【不可读;不存在则创建,存在则报错】
    • a, 追加模式【不可读;   不存在则创建;存在则只追加内容;】

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

    • r+, 读写【可读,可写】        覆盖前文,从开始向后读末尾追加,指针移动到最后
    • w+,写读【可读,可写】        先清空,再写,再读写的内容,一写指针就到最后
    • x+ ,写读【可读,可写】        先清空,再写,再读写的内容,一写指针就到最后  文件存在即报错
    • a+, 写读【可读,可写】        打开的同时已经把指针移动到最后了 

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

    • rb  或 r+b
    • wb 或 w+b
    • xb 或 w+b
    • ab 或 a+b
    •  注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型

     注意:

    • r与r+的区别

      r只读,r+读写,不创建

      w新建只写,w+新建读写,二者都会将文件内容清零 (以w方式打开,不能读出。w+可读写)

    • w+与r+区别:
      r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建

    二 文件操作

    for line in f:  #循环文件
    f.read() #读取文件,可读模式下可用,按字符查找,读取时可以指定读取多少字符
    readline()           #只读一行 ,遇到
     or 
    为止
    f.write()   #写入数据,可写模式下可用
    f.tell()   #查看指针当前位置
    f.seek() #跳转指针到该位置处
    #注意 tell,seek按字节查找,通过tell()保存指针位置, 再通过seek()打开保存的指针位置, 在做日志增量分析时非常有用  
    
    fileno() #返回文件句柄在内核中的索引值,以后做IO多路复用时可以用到 flush(): #把文件从内存buffer里强制刷新到硬盘 readable() #判断是否可读 seekable() #判断是否可进行seek操作 truncate() #按指定长度截断文件 ,指定长度的话,就从文件开头开始截断指定长度,不指定长度的话,就从当前位置到文件尾部的内容全去掉。 writeable() #判断文件是否可写

    三 关闭文件

    1.  f.close()
    2. with open("ha1.log","r+",encoding="utf-8") as f: 

      可以不用写f.close() Python自动关闭  

      可以同时打开两个文件(@2.7之后的版本) with open("源文件","r+",encoding="utf-8") as f,open("新文件","r+",encoding="utf-8") as f:  优化内存,文件太大,可以通过这个方式

    注意

    • 不知道编码,rb,用于网络传输等不给人看的方
    • 不知道编码,用二进制模式rb,用于网络传输等不给人看的方式
    • 不知道要处理的文件编码是什么,用chardet模块,尝试判断字符编码
    • 写入的数据,会短暂的在内存停留,到达一定的量才存到硬盘,以此来提高运行速度
    • 修改数据,文件开始和结束的位置确定,不可以改变,修改可能会让某些字符乱码
  • 相关阅读:
    范例-项目-.NET-PetShop-4.0-架构设计:目录、PetShop概述
    汉语-词语:立志
    汉语-汉字:被
    汉语-成语:被褐怀珠
    汉语-成语:被褐怀玉
    汉语-成语:被褐藏辉
    汉语-词语:处世
    使用exp&imp工具进行数据库备份及恢复
    oracle创建表空间-用户-角色-授权
    linux下单独安装oracle12.1客户端
  • 原文地址:https://www.cnblogs.com/leiyiming/p/8999087.html
Copyright © 2011-2022 走看看