7.8 文件内光标的移动

时间:2020-12-30 18:04:49

当文件内容中间需要增加内容时,单纯的使用w和a模式已无法实现,所以我们需要对文件内的光标进行移动

>>>硬盘上从来没有修改一说,硬盘上只有覆盖,即新内容覆盖新内容。<<<

光标移动常用方法

seek(offset,whence)

  • offset 代表文件指针的偏移量,单位是字节,

  • whence 代表光标的位置,

      0:参照文件的开头 t和b都可以使用
      1:参照光标所在的当前位置 只能在b模式下用
      2:参照文件的末尾 只能在b模式下使用

# test02.txt
# >>>>>>
#tian是天上的云
#tian是天上的云
#tian是天上的云
# >>>>>>
with open(rtest02.txt,r,encoding=utf-8) as f:
    print(f.read(5))

#tian是 
# 在rt模式下 read内的数字 表示的是字符的个数
# 除此之外,数字表示的都是字节
只有在r模式下才可以进行游标操作(游标操作的是字节)

with open(a.txt,rb) as rb:

  date = rb.read(10)

  f.seek(2,0)   #seek(offset,whence)    offset   前面的是游标移动的字节数,正数表示向后移动,负号表示向前移动。  

        逗号后面的数字在b模式下可以为0、1、2

        whence    0:游标置到开头  1:游标置到当前位指  2:游标置到末尾

# 你是日本人
with open(target.txt, rb) as f:
# 先读6个字节
data = f.read(6)
print(data.decode(utf-8)) # 你是
# 将游标从头开始往后偏移3个字节
f.seek(3, 0)
data = f.read(6)
print(data.decode(utf-8)) # 是日
# 从当前游标位置往前偏移3个字节
f.seek(-3, 1)
data = f.read(3)
print(data.decode(utf-8)) #

f.seek(-3, 2)
data = f.read(3)
print(data.decode(utf-8)) #