文件指针


01.文件指针:

  • 文件指针表示当前读写操作在文本中的位置。
  • 文件指针的初始化位置:
    • mode等于r时,指针起始在0。
    • mode等于a时,指针起始在EOF。


02.文件指针读取:

  • 使用tell()方法可以返回当前指针的流位置,其格式为:
tell()
  • tell()方法的示例:
    write_file = open('E:\\windows.txt', 'w+')
    write_file.write('Good Luck Dominos!!')
    my_seek = write_file.tell()
    print(my_seek)
    write_file.close()


03.文件指针修改:

  • 使用seek()方法可以修改当前指针的流位置,其格式为:
seek(offset, whence=0, /)
  • seek()方法的参数包括:
    • offset,偏移量,其值依赖于whence的相关设置。
    • whence:
      • 值为0,默认值,从文本的起始位置开始;offset的值为0或正整数,表示指针移动到从第0字符开始的N个字符之后。
      • 值为1,从当前位置开始;offset的值为0,正整数或负整数,表示指针移动到当前位置的N个字符之后。
        • 值为1时,若offset值不为0,则只能使用字节流模式打开,即加上’b’参数。
        • 值为1时,若offset为负值,则其绝对值不能超过当前的偏移量。
      • 值为2,从文本的结束位置开始;offset的值通常为负整数,表示指针移动到从最后一个字符往前的N个字符之后。
        • 值为2时,若offset值不为0,则只能使用字节流模式打开,即加上’b’参数。
        • 值为2时,若offset为负值,则其绝对值不能超过整个文本的字节数。
  • seek()方法的建议:
    • 使用字符流方式打开时,除了移动到起始和结束位置,不要有其他的操作。
      • 如果一定要移动,则gbk为2个字节,utf-8为三个字节。
    • 使用字节流方式打开时,可以任意操作。
  • seek()方法的示例:
    write_file = open('E:\\windows.txt', 'wb+')
    write_file.write('Good Luck Dominos!!'.encode('gbk'))
    my_seek = write_file.tell()
    print(my_seek)
    write_file.seek(-2, 1)
    my_seek = write_file.tell()
    print(my_seek)
    write_file.close()
文档更新时间: 2020-04-20 00:09   作者:闻骏