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 总结
优点:不费内存,内存同一时刻只有文件的一行内容
缺点:费硬盘,在修改过程中硬盘上会同时存放两份数据