zoukankan      html  css  js  c++  java
  • 文件中seek的用法补充

    绝对路径:

    1 f = open('seek','r',encoding='utf-8')
    2 print(f.tell())
    3 f.seek(10,0)#从起始位置开始
    4 print(f.tell())
    5 f.seek(3,0)
    6 print(f.tell())
    运行结果:
    0 10 3 Process finished with exit code 0

     相对路径:

    1 f = open('seek','rb')#以b方式打开  不能有encoding(冲突)
    2 print(f.tell())
    3 f.seek(10,1)
    4 print(f.tell())
    5 f.seek(3,1)#相对于10
    6 print(f.tell())

    运行结果:

    0
    10
    13
    
    Process finished with exit code 0
    

    倒叙输出:

    1 f = open('seek','rb')
    2 print(f.tell())
    3 f.seek(-5,2)#
    会被读出来 读取后面五个字节
    4 print(f.read())

    建议循环文件的方式:

     #循环文件的方式
    for i in file:#一次取一行,并且方式为要一行去一行
        print(i)
    

    seek应用:

    1 #需求:读取日志文件最后一条记录
    2 第一种方式:【不推荐】
    3 f = open('日志文件','rb')
    4 data = f.readlines()#读取整个文件 作为列表 占用大量内存且无用
    5 print(data[-1].decode('utf-8'))
     1 #大文件的最后一行读取方式(可应用于日志文件)【推荐】
     2 f = open('seek','rb')
     3 for i in f:
     4     offs=-10#定义一个偏移量 大概每条记录的字节数
     5     while True:
     6         f.seek(offs,2)#每一次都seek10个
     7         data = f.readlines()
     8         if len(data)>1:
     9             print('文件的最后一行是:%s'%(data[-1]).decode('utf-8'))
    10             break
    11         offs*=2
  • 相关阅读:
    css问题
    前端性能优化整理
    算法之排序
    浅谈webpack优化
    js设计模式
    事件模型
    浏览器缓存
    ucGUI 12864 从打点起
    ucGUI例程收藏
    Qt 自动搜索串口号列表
  • 原文地址:https://www.cnblogs.com/gl-gl/p/9135376.html
Copyright © 2011-2022 走看看