1.把日志状态码为200得请求记录下来
记录信息(ip,访问时间,请求资源)
封装函数再次调用,健壮性try except

#coding=utf-8
import re
def  aclog(path,putpath):
    result=""
    with open(path,"r")  as fp:
        lines=fp.readlines()
        for line in lines:
            if "200" in line:
                
                ip=re.search(r"(\d{1,3}\.){3}\d{1,3}",line).group()
                time=re.search(r"\[.*\]",line).group()
                url=re.search(r"GET.*(200)",line).group()[:-3]
                result=ip+time+url+"\n"
                with open(putpath,"a+") as fp1:
                    fp1.write(result)
        
aclog("e:\\accesslog.txt","e:\\aclog.txt")

另一种方法:使用split

#encoding=utf-8
def AnalysisLog(filenameget,filenameput):
    try:
        with open(filenameget) as f:
            as1=[i.split() for i in f]
        as2=[[i[0],i[3],i[6]] for i in as1 if i[8].startswith("2")]
        with open(filenameput,"w") as f:
            f.writelines(["".join([" ".join(i),"\n"]) for i in as2])
        return "success!"
    except Exception,e:
        return "failed!",str(e)
 
if __name__=="__main__":
    filenameget=ur"e:\\get.txt"
    filenameput=ur"e.\\put.txt"
    print AnalysisLog(filenameget,filenameput)
在方法二基础上改善
#encoding=utf-8
def AnalysisLog(filenameget,filenameput):
    result=""
    try:
        with open(filenameget) as f:
            for line in f.readlines():
                i=line.split()
                if "200" in line:
                    result+=i[0]+i[3]+i[6]+"\n"
            
        
        with open(filenameput,"w") as f:
            f.write(result)
        return "success!"
    except Exception,e:#
        return "failed!",str(e)
 
if __name__=="__main__":
    filenameget=ur"e:\\accesslog.txt"
    filenameput=ur"e:\\put.txt"
    print AnalysisLog(filenameget,filenameput)

python实战,的更多相关文章

  1. zeromq 学习和python实战

    参考文档: 官网 http://zeromq.org/ http://www.cnblogs.com/rainbowzc/p/3357594.html   原理解读 zeromq只是一层针对socke ...

  2. Python实战:美女图片下载器,海量图片任你下载

    Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...

  3. Python实战:Python爬虫学习教程,获取电影排行榜

    Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...

  4. python实战--数据结构二叉树

    此文将讲述如何用python实战解决二叉树实验 前面已经讲述了python语言的基本用法,现在让我们实战一下具体明确python的用法 点击我进入python速成笔记 先看一下最终效果图: 首先我们要 ...

  5. 再一波Python实战项目列表

    前言: 近几年Python可谓是大热啊,很多人都纷纷投入Python的学习中,以前我们实验楼总结过多篇Python实战项目列表,不但有用还有趣,最主要的是咱们实验楼不但有详细的开发教程,更有在线开发环 ...

  6. python实战:用70行代码写了一个山炮计算器!

    python实战训练:用70行代码写了个山炮计算器! 好了...好了...各位因为我是三年级而发牢骚的各位伙伴们,我第一次为大家插播了python的基础实战训练.这个,我是想给,那些python基础一 ...

  7. python实战博客

    2018-10-31 更新Logging日志记录以及异常捕获 感谢廖大教程.Python实战 直接在闲置的服务器上开发.阿里云Centos 6.8 64位. 1 搭建开发环境 Python 环境是Py ...

  8. python实战提升--1

    #python实战提升 1. 如何在列表.字典.集合中根据条件筛选数据? python中for _ in range(10)与for i in range(10)有何区别 下划线表示 临时变量, 仅用 ...

  9. 原创:centos7.1下 ZooKeeper 集群安装配置+Python实战范例

    centos7.1下 ZooKeeper 集群安装配置+Python实战范例 下载:http://apache.fayea.com/zookeeper/zookeeper-3.4.9/zookeepe ...

  10. 自然语言处理之中文分词器-jieba分词器详解及python实战

    (转https://blog.csdn.net/gzmfxy/article/details/78994396) 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自 ...

随机推荐

  1. @RequestMapping-限定请求方法的映射

    限定请求方法的映射 测试: 如果非指定的请求方法访问时会出现405状态:

  2. mybatis字符#与字符$的区别

    问题:使用in查询查询出一批数据,in查询的参数是字符串拼接的.调试过程中,把mybatis输出的sql复制到navicat中,在控制台将sql的参数也复制出来,替换到sql的字符 '?' 的位置,执 ...

  3. Jquery.serializeArray()可看表单提交内容

  4. appium基础之简单的小例子

    appium环境搭建了,当然也要开始用起来了,记录一下学习的过程 遇到问题 1.The permission to start '.ui.home.view.HomeActivity' activit ...

  5. linux创建定时任务发送钉钉通知

    一.现在钉钉里面添加机器人 添加成功后,复制出Webhook链接. 注意,自定义关键字时你的发送信息中一定要完整包含关键字 二.找到自己的服务器 1. sudo su 切换到root用户 2.cron ...

  6. java并发编程:锁的相关概念介绍

    理解同步,最好先把java中锁相关的概念弄清楚,有助于我们更好的去理解.学习同步.java语言中与锁有关的几个概念主要是:可重入锁.读写锁.可中断锁.公平锁 一.可重入锁 synchronized和R ...

  7. airflow介绍

    1. airflow 介绍 1.1 airflow 是什么 Airflow is a platform to programmatically author, schedule and monitor ...

  8. 【TJOI 2019】唱、跳、rap和篮球

    题意 有 $a$ 个 $0$,$b$ 个 $1$,$c$ 个 $2$,$d$ 个 $3$,求有多少种长度为 $n$ 且不包含 $0123$ 这个子串的字符串个数. $n\le 1000,\space ...

  9. 【leetcode】1262. Greatest Sum Divisible by Three

    题目如下: Given an array nums of integers, we need to find the maximum possible sum of elements of the a ...

  10. node的安装和配置教程

    node,除了做数据服务处理,还是各大框架的环境依赖,作为前端开发人员,node是必不可少的.好了,接下来直接开始. 一.根据自己的安装环境(即你的电脑系统版本)下载对应安装包,官网地址:https: ...