中国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