zoukankan      html  css  js  c++  java
  • 文件处理

    一、打开文件的模式

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

    对于非文本文件,我们只能使用b模式,‘b'表示以字节的方式操作(而且所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jpg视频文件的avi格式)

    二、文件内光标移动

          1. read(3):

        1. 文件打开方式为文本模式时,代表读取3个字符

        2. 文件打开方式为b模式时,代表读取3个字节

        其余的文件内光标移动都是以字节为单位如seek,tell,truncate

     2.seek

     f.seek(offset,whence)
      offset:相对偏移量 光标移动的位数
      whence:
            0:参照文件的开头  t和b都可以使用
            1:参照光标所在的当前位置,只能在b模式下用
            2:参照文件的末尾,只能在b模式下使用
        with open (r'test','rt'encoding ='utf-8')as f:
        print (f.read(1))

    三、截断文件
         with open(r'test','a',encoding='utf-8') as f:
        f.truncate(6)  # 接收的字节的长度 整型
        # 保留0~6字节数 后面的全部删除(截断)

    四、修改文件

    文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式:

    方式一:

     先将数据由硬盘读到内存(读文件)
     在内存中完成修改(字符串的替换)
    再覆盖原来的内容(写文件)

    优点:任意时间硬盘上只有一个文件 不会占用过多硬盘空间
    缺点:当文件过大的情况下,可能会造成内存溢出

    方式二:

    创建一个新文件
    #循环读取老文件内容到内存进行修改  将修改好的内容写到新文件中
    将老文件删除  将新文件的名字改成老文件名

    优点:内存中始终只有一行内容 不占内存
    缺点:再某一时刻硬盘上会同时存在两个文件

  • 相关阅读:
    常用、好用的资源管理器收藏
    单片机延时函数整理——针对裸机
    ad7793的调试记录
    《80c51单片机实用技术》邹久朋学习笔记
    使用串口工具(volt++ vofa)伏特加来实时打印波形
    golang从简单的即时聊天来看架构演变
    无敌简单快速的文件服务器sgfs
    到底是否应该使用“微服务架构”?
    你所学习的设计模式到底有什么用?到底怎么用?
    浅入深出ETCD之【raft原理】
  • 原文地址:https://www.cnblogs.com/panyi2019/p/11153492.html
Copyright © 2011-2022 走看看