文档章节

Python文件倒读,主要用于日志分析

connie_wu
 connie_wu
发布于 2015/06/05 11:20
字数 607
阅读 73
收藏 0

#!/usr/bin/env python

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


"""

思路:

    先将指针移动到文件最后

    f.seek(0,2)

    向前移动2位读一位

    f.seek(-2,1)

    f.read(1)

    f.tell() == 1  到达文件顶部退出循环

    

    

    文件内容:

            a

            b

            c

            d

"""

f = open('文件倒读.txt')

f.seek(0,2)

while f.tell() > 1:

    f.seek(-2,1#第一个参数偏移量,第二个参数 当前位置:0,文件开始1,当前位置,2文件最后

    c = f.read(1)

    print c,

f.close()




#!/usr/bin/env python

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


"""

思路:

    先将指针移动到文件最后

    f.seek(0,2)

    向前移动2位读一位

    f.seek(-2,1)

    f.read(1)

    f.tell() == 1  到达文件顶部退出循环

    

    

    文件内容:

            1a

            2b

            3c

            4d

"""

f = open('文件倒读.txt')

line = ''

f.seek(0,2)

#while f.tell() > 1:

while True:

    if f.tell() == 1:

        print line

        break

    f.seek(-2,1#第一个参数偏移量,第二个参数 当前位置:0,文件开始1,当前位置,2文件最后

    c = f.read(1)

    if c != '\n':

        line = c + line

    else:

        print line

        line = ''

f.close()








#!/usr/bin/env python

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


"""

思路:

    先将指针移动到文件最后

    f.seek(0,2)

    向前移动2位读一位

    f.seek(-2,1)

    f.read(1)

    f.tell() == 1  到达文件顶部退出循环

    

    

    文件内容:

            1a

            2b

            3c

            4d

"""

import sys

def filerev(file):

    fd = open(file)

    line = ''

    fd.seek(0,2)

    #while f.tell() > 1:

    while True:

        if fd.tell() == 1:

            yield line

            break

        else:

            fd.seek(-2,1#第一个参数偏移量,第二个参数 当前位置:0,文件开始1,当前位置,2文件最后

            c = fd.read(1)

            if c != '\n':

                line = c + line

            else:

                yield line

                line = ''

    fd.close()


def main():

    a = filerev('文件倒读.txt)#生成器对象,返回文件类型

    for i in a:

        print i

if __name__ =='__main__':

    main()




buff方法读取

#!/usr/bin/env python

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


"""

思路:

    先将指针移动到文件最后

    f.seek(0,2)

    向前移动2位读一位

    f.seek(-2,1)

    f.read(1)

    f.tell() == 1  到达文件顶部退出循环

    

    

    文件内容:

            1a

            2b

            3c

            4d

"""

import sys

def filerev(file):

    buf = 256

    fd = open(file)

    line = ''

    fd.seek(0,2)

    size = fd.tell()

    rem = size % buf

    pos = max(0,size-(buf+rem))

    #while f.tell() > 1:

    while True:

        if pos < 0:

            yield line

            break

        else:

            fd.seek(pos)  #第一个参数偏移量,第二个参数 当前位置:0,文件开始1,当前位置,2文件最后

            d = fd.read(buf+rem)

            rem = 0

            pos -= buf

            if '\n' in d:

                for c in reversed(d):

                    if c != '\n':

                        line = c+line

                    else:

                        if line:

                            yield line

                        line = ''

            else:

                line = d+line

    fd.close()


def main():

    a = filerev('文件倒读.txt')#生成器对象,返回文件类型

    for i in a:

        print i

if __name__ =='__main__':

    main()










© 著作权归作者所有

共有 人打赏支持
connie_wu
粉丝 0
博文 18
码字总数 4503
作品 0
朝阳
【临实战】使用 Python 处理 Nginx 日志

有什么 要做什么 怎么做 开始 一. 使用 pssh 工具在 14 台机器执行 grep 命令获取包含某特征的日志 结果: 红色执行失败的的那两台机器未包含符合我们筛选条件的日志 二. 将 14 份日志作为标...

有什么
07/03
0
0
python处理iis日志——统计页面的访问量

最近写了一个简单的使用python分析iis日志的小demo,用于自己练手,写的不好还要请高手多多指教。 代码的整体思路: 1、首先获得位于iislog文件夹下的日志文件 定义了一个getfiles 函数,参数...

flyingmo
2013/06/02
0
2
LogonTracer:用于可视化分析Windows安全事件日志寻找恶意登录的工具

   简介   LogonTracer是一款用于可视化分析Windows安全事件日志寻找恶意登录的工具。它会将登录相关事件中找到的主机名(或IP地址)和帐户名称关联起来,并将其以图形化的方式展现出来。...

FreeBuf
05/30
0
0
Python性能分析 (Profiling)

性能分析(Profiling)可用于分析程序的运行时间主要消耗在何处,以便有效优化程序的运行效率。 Profiling可分为两步,一是运行程序收集程序不同部分运行时间的数据,二是数据的可视化和分析...

索隆
2012/05/02
0
0
Python 学习笔记 (8)—— sys模块

主要介绍用的比较多的sys的模块命令包括:sys.argv,sys.platform,sys.getdefaultencoding,sys.setdefaultencoding(),sys.getfilesystemencoding(),sys.exit(n),sys.path,sys.modules......

10730
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

bat强制启用宏

运行bat文件后,将宏的安全等级设为低,达到启用宏的目的。 REM 这个文件将提供用户快速设置Excel宏的安全等级@ECHO OFFCLS:cmd4REG ADD "HKEY_CURRENT_USER\Software\Mi...

tedzheng
10分钟前
0
0
流,用声明性的方式处理数据集 - 读《Java 8实战》

引入流 Stream API的代码 声明性 更简洁,更易读 可复合 更灵活 可并行 性能更好 流是什么? 它允许以声明方式处理数据集合 遍历数据集的高级迭代器 透明地并行处理 简短定义:从支持数据处理...

yysue
12分钟前
1
0
postman发送json格式的post请求

postman发送json格式的post请求 在地址栏里输入请求url:http://127.0.0.1:8081/getmoney 选择“POST”方式, 在“headers”添加key:Content-Type , value:application/json 点击"body",''ra...

两广总督bogang
19分钟前
0
0
Javascript将html转成pdf,下载(html2canvas 和 jsPDF)

最近碰到个需求,需要把当前页面生成pdf,并下载。弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 项目源码地址:https://github.com/linwalker/render-html-to-pdf html2ca...

孟飞阳
19分钟前
0
0
pureftp源码编译及设定

--- use for RHEL 567 and Ubuntu 1604 1. download pureftpd wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.47.tar.bz2 2. install gcc #apt-get install -y li......

zzimac
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部