Python- 文件指针定位之 seek() 方法

  • 文件指针定位之 seek 方法
  • seek(offset, from)
    • offset :文件指针偏移量(很多博客在这里将offset定义为指针偏移量,但是目前我的看法是这里定义为指针的相对位置)
    • from : 0-文件开头 1-当前位置 2-文件末尾(这里的0,1,2只是代表了文件位置,而不是说0,1,2可以参与指针偏移的计算。from 是可选项,默认为0.目前接触到的知识,我自己并没有弄明白from的作用。至少在读取非2进制文件时,都是选择默认值)
  • 以一个文件内容为hello world 的文本文件为例:
with open("xxxx.txt", "r", encoding= "utf-8") as f:
    print(f.read())    # helloworld
    f.seek(8)
    print(f.read())    # rld
    • Python3中 如果from 不为0 ,那么 offset就必须为0
    • 如果想读取文件倒数n个字符,以文件末尾为参照对象,向前移动n个字符(我的理解是定位指针),就可以得到指针的相对位置。
    f.seek(f.seek(0,2)-4,0)
    print(f.read())    # orld
  • 使用utf-8编码格式 seek()方法定位文件指针,追加写入内容如果是中文,只能执行一次追加写入方法,如果是第二次会报错,‘utf-8’ codec can’t decode byte 0x99 in position 0: invalid start byte。但是用英文字符串写入不受限制。目前没搞懂原因。
展开阅读全文

没有更多推荐了,返回首页