zoukankan      html  css  js  c++  java
  • 文件内指针移动

    # _*_ coding: utf-8 _*_

    # 大前提:
    # 文件内指针的移动是按Bytes为单位的,
    # 唯读t模式下的read读取内容个数是以字符为单位

    # with open('a.txt',mode='rt',encoding='utf-8') as f:
    # data = f.read(3) #三个字符
    # print(data)
    #
    # with open('a.txt',mode='rb') as f:
    # data = f.read(3)
    # print(data)
    # print(data.decode('utf-8'))

    # f.seek(指针移动的Bytes数,模式控制):控制文件指针的移动
    # 模式控制:
    # 0(t): 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的
    # 1(b): 该模式代表指针移动的字节数是以当前所在的位置为参照的
    # 2(b): 该模式代表指针移动的字节数是以文件末尾的位置为参照的
    # 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用

    # f.tell()查看文件指针当前距离文件开头的位置

    # 0模式详解
    # with open('a.txt', mode='rt', encoding='utf-8') as f:
    # f.seek(7, 0) # t模式下的0模式 就是按字符是以文件开头为参照的
    # print(f.tell())
    # print(f.read())

    # with open('a.txt', mode='rb') as f:
    # f.seek(3,0)
    # print(f.tell())
    # print(f.read().decode('utf-8'))

    # with open('a.txt',mode='rt',encoding='utf-8') as f:
    # f.seek(7,0)
    # print(f.read())

    # 1模式详解
    # with open('a.txt',mode='rb') as f:
    # f.seek(3,1)
    # print(f.tell()) #查看文件指针当前距离文件开头的位置
    # f.seek(4,1)
    # print(f.tell())
    # print(f.read().decode('utf-8'))

    # 2模式详解
    # with open('a.txt', mode='rb') as f:
    # f.seek(-10,2) #有换行符 1个Bytes
    # data = f.read()
    # print(data.decode('utf-8'))

    with open('access.log',mode='rb') as f:
    f.seek(0,2)
    while True:
    line = f.readline()
    if len(line) == 0:
    continue
    else:
    print(line.decode('utf-8'),end='')
  • 相关阅读:
    在 Eclipse Workbench 之外使用 Eclipse GUI
    GB2312,GBK,Unicode
    木偶一之推荐系统
    Matlab:任意矩阵计算分布密度(海明距离的分布密度)
    live555在arm linux下的交叉编译,并下载的Arm板播放H264文件
    java设计模式之原型模式
    HDU 1102
    poj3661另一种做法(滚动数组)
    基于QT的小游戏细菌病毒战
    某代码查看器的保护突破
  • 原文地址:https://www.cnblogs.com/OutOfControl/p/9688631.html
Copyright © 2011-2022 走看看