2020 python学习第十天————控制文件指针移动和文本修改

1.1 文件内指针移动的单位是什么?

  只有t模式下read(n),这个n代表的字符个数

  除此之外,所有的被动的、主动的文件指针移动的单位都是字节的个数

    硬盘容量的本质就是能存多个二进制数bit

      8bit=>1Byte

      1024Byte = 1KB

      1024KB=1MB

      1024MB=1GB

      1024GB=1TB

      1GB=1024*1024*8

1.2 truncate

  f.truncate(1)

    截断文件,用于r+或a模式

1.3 主动/单纯地控制文件指针移动

  f.seek(x,y)

    x代表的是移动的字节个数

    y代表的模式:

      0:代表参照物是文件开头,可以在t模式和b模式下使用

      1:代表参照物是当前位置,只能在b模式下用

      2:代表参照物是文件末尾,只能在b模式下用

 

2.1 文件修改

  硬盘数据没有改这么一说,都是用新内容覆盖老内容

  文件修改都是通过内存模拟出来的

2.2 方法一

  2.2.1 原理

    1.把硬盘内容全部读入内存

    2.在内存中把内容一次性修改完毕

    3.然后把修改完毕的结果覆盖回原文件

  2.2.2 总结

    优点:不费硬盘,硬盘数据只有一份

    缺点:费内存,文件过大时内存占用过多

2.3 方法二

  2.3.1 原理

    1.把硬盘内容逐行读入内存

    2.在内存中把内容修改完毕存入另一个文件

    3.然后把修改完毕的文件替换原文件

  2.3.2 总结

    优点:不费内存,内存同一时刻只有文件的一行内容

    缺点:费硬盘,在修改过程中硬盘上会同时存放两份数据

posted @ 2020-06-12 16:30  最冷不过冬夜  阅读(148)  评论(0编辑  收藏  举报