• pytho之文件处理


    一 文件处理流程

    1. 打开文件,得到文件句柄并赋值给一个变量
    2. 通过句柄打开文件进行操作
    3. 关闭文件

    二 基本操作

    2.1 文件操作基本流程

    1 f_read = open("text",encoding='utf8')
    2 data=f_read.read()
    3 print(data)
    4 f_read.close()

    2.2 文件编码

    打开文件要用它存储的编码模式打开,否则会报错或者出现乱码。

    2.3 文件的打开方式

    打开文件时,需要指定文件路径以及打开的方式,打开后,即可获得文件句柄,用文件句柄对文件进行操作。

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

    打开文件的模式:

    • r:只读模式【默认模式,文件必须存在,不存在会报错】
    • w:只写模式【不可读;文件不存在则创建;存在则清空neir】
    • x:只写模式【不可读;文件不存在则创建;存在则报错】
    • a:追加模式【可读;不存在则创建;存在则以追加内容】

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

    • r+:读写【可读,可写】
    • w+:写读【可读,可写】
    • x+:写读【可读,可写】
    • a+:写读【可读,可写】

    ”b“表示以字节的方式操作

    • rb或r+b
    • wb或w+b
    • xb或x+b
    • ab或a+b
    • 以b方式打开时,读取到的内容是字节型,写入时也需要提供字节类型,不能指定编码。
    • 要查看实际内容要解码,用decode()函数
    • 将字符串转换成二进制用bytes()函数
    • 好处:可以处理不同的文件

    with方式打开文件:

    1 with  open("text",encoding="utf8") as f_read:
    2     data=f_read.read()
    3     print(data)
    4     f_read.close()
    • 不需要自己关闭文件,操作系统自动帮忙完成
    • with还可以同时打开多个文件
    1 with  open("text",encoding="utf8") as srcf,
    2     open("text_new","w",encoding="utf8") as dst_f:
    3     data=srcf.read()
    4     dst_f.write(data)

    2.4文件内置函数flush

    1. 文件操作通过软件将文件从硬盘读到内存
    2. 写文件的操作也都是存入内存缓冲区buffer
    3. flush,强制将写入的数据刷到硬盘

    2.5 文件的其他函数

     1 f = open("text","r+",encoding="utf8")
     2 
     3 f.readline() # 读取一行
     4 
     5 f.readlines() # 读取所有的内容放在列表中
     6 
     7 f.seek()#控制光标的移动
     8 
     9 f.tell()#光标当前所在位置
    10 
    11 f.truncate()#文件截断(在写文件)
    12 
    13 f.closed #判断文件是否关闭
    14 
    15 f.encoding#取文件打开的编码
    16 
    17 f.name #获取文件名
    18 
    19 f.close()

    2.6 文件光标移动

    注意:

    • reas(3)代表读取三个字符,其余的文件内光标移动都是以字节为单位如,seek,  tell,  read,  truncate。
    • 0模式不用指定文件打开方式;1,2模式要用rb的方式打开文件
      f = open("text","rb")
      
      f.seek(6) #光标在第六个位置
      
      f.seek(3,0)#0模式从头开始seek
      
      f.seek(10,1))#1模式从当前位置seek
      
      f.seek(-10,2))#2模式从最后位置seek,倒着seek前面参数用负数
      
      f.close()
  • 相关阅读:
    管理软件数据库备份策略
    融云群组同步策略
    Nginx中配置undertow进行两个项目的动静分离配置
    记录mysql正在执行的SQL语句
    RabbitMQ启动出现的问题与解决办法
    延迟任务的实现总结
    查找所有sphinx引擎表并生成创建表的语句
    go 学习笔记(4) --变量与常量
    go 学习笔记(4) import
    go 学习笔记(4) package
  • 原文地址:https://www.cnblogs.com/kaixindexiaocao/p/9720164.html
Copyright © 2020-2023  润新知