- 中国dzm
- xyq
- test
-
- # 读取文件
- f = open('test.txt', 'r+')
- # 读取第一行
- print(f.readline())
- # 获得读取光标位置,并调整写入光标
- f.seek(f.tell())
- # 写入内容,上面为什么需要调整写入光标?读取跟写入的光标不是一起的,是各用各的,
- # 因为 readline() 读取之后,在获取光标,获得的是读取光标位置,
- # 写入光标还是在尾部的,所以需要通过 seek() 将写入光标调整到当前的写入光标位置
- # 要不然内容就会被追加到尾部,而不是插入到中间指定位置
- f.write('zh')
-
由于硬盘存储机制原因,默认写入只会替换覆盖,比如光标在 10 的位置,现在写入内容 zh,这是 2 个字节,也就是会替换覆盖掉 11、12 位置上的内容:
- 中国dzm
- zhq # 这一行的 11、12 位置就被替换了,这样就不能达到插入内容,或替换内容效果
- test
-
- # 读取内容
- f = open('test.txt', 'r+')
- # 加载到内存
- data = f.read()
- # 替换内容(或者替他操作)
- data = data.replace('test', 'djy')
- print(data)
- # 需要将光标移动到开始位置
- f.seek(0)
- # 截断文件,也就是将光标之后的内容全部清空不要了,这样也就达到了清空的
- f.truncate()
- # 把新内容写回硬盘
- f.write(data)
- # 关闭
- f.close()
-
- 中国dzm
- xyq
- djy
-