背景
最近课长时不时让我统计CDN服务器上某个zip的下载次数。
确认了一下访问log。30天的log大概700多个文件,90万行,140M左右。从里面过滤出必须的几百条。
本来最简单的办法是使用Talend,但是打开去年安装的Talend发现软件已经更新N版,且我本地的java版本变换过几次,导致不兼容。重新下载和安装费时费力。于是放弃了。
第一次统计采用最原始的execl和txt文本处理,倒也是能对付的了。
只是90万行,execl处理起来基本每一步骤都是死机状态。
最后决定自己用新学的python写几行代码实现。
程序构造
读取log文件
判断有没有关键字
有的话输入到output.txt中
提前准备
首先把700多个log文件合并到一起。
合并工具
在txt文本中写一行命令
type *.txt > input.txt
保存为hebing.bat
双击bat
把hebing.bat拷贝到存放700多个log的文件夹下,双击执行。这样就生成了input.txt
是不是很简单?!
log过滤程序初版
把input.txt剪切到mapDownload.py所在的文件夹。
mapDownload.py内容如下
#-*- coding:UTF-8 -*-
#读取一个文件的每一行,每一行为一个字符串
#判断字符串中是否包含【XXXXXX.zip】关键字
#包含的话,就输出这一行到别的文件中
#mapDownload.py 和 input.txt output.txt 放在一个文件夹下执行py文件
import sys
import mat