python读取log文件数据(python读取grib)
有几千个TXT格式的log文件,怎么用Python批量提取每个log文件固定位置的具体数值,输出到一个TXT文件?
1.将这些TXT文件先合并
2.找到这些具体数值的特征
3.用正则表达式过滤提取
这阵子正学习python,不介意可以发给我,练着玩
Python 读取log文件并提取错误信息的功能,不知道如何实现
楼 下的回答提从zipfile里读取文件,至于lovejie1214问的是如果用正则表达式提取。
统计数据及类型需要一个dict,
读日志通常可以用csv提高速度。因为不知道你的文件格式这里不好直接写程序。
types={}
while not_end:
line=fp.readline()
m=re.search("(?isu)Short Msg:(.*)",line)
if m:
try:
types[m.group(1).strip()]+=1
except KeyError:
types[m.group(1).strip()]=1
for k in types:
print k,types[k]
python 读取日志文件
#?-*-?coding:utf-8?-*-
from?datetime?import?datetime?as?dt
with?open('log.txt','r')?as?f:
????for?i?in?f:
????????if?dt.strftime(dt.now(),'%Y-%m-%d')?in?i:?
????????????#判断是否当天时间
????????????if?'ERROR'?in?i?and?'at?com.mytijian'?in?i:?
????????????????#判断此行中是否含有?'ERROR'及'at?com.mytijian'
????????????????if?((dt.now()-dt.strptime(i.split(',')[0],?'%Y-%m-%d?%H:%M:%S')).seconds)45*60:
????????????????????#判断时间是为当前45分钟内
????????????????????print?i
如何用python最快的获取大文件的最后几行
工作中经常会遇到处理日志文件的问题:为了得到日志的最新状态,我们需要获取日志文件的最后部分行来做判断。那么,这种情况下我们应该怎么做呢?
1)常规方法:从前往后依次读取
步骤:open打开日志文件。
读取文件,获取文件的总行数。
遍历所有行,提取指定行的数据。
优点:简单,方便
缺点:当文件大了以后时间太慢,无法忍受
2)推荐方法:
步骤:open打开日志文件。
移动文件读取指针到文件末尾。
从后往前移动指针直到合适的位置。
读取文件,提取指定行的数据。
优点:时间相对固定,适合处理大文件
示例:
[python] view plain copy
logFile = open('logFilePath.log', 'r')
logFile.seek(0,2)
logFile.seek(-1000000,2)
rowCount = 0
for row in logFile.readlines()[1:]:
pass
seek():移动文件读取指针到指定位置
tell():返回文件读取指针的位置
seek()的三种模式:
(1)f.seek(p,0) 移动当文件第p个字节处,绝对位置
(2)f.seek(p,1) 移动到相对于当前位置之后的p个字节
(3)f.seek(p,2) 移动到相对文章尾之后的p个字节