当前位置:首页 » 编程语言 » python日记

python日记

发布时间: 2022-08-18 14:14:59

python处理日志的包有哪些

#coding:utf-8
#file: FileSplit.py

import os,os.path,time

def FileSplit(sourceFile, targetFolder):
sFile = open(sourceFile, 'r')
number = 100000 #每个小文件中保存100000条数据
dataLine = sFile.readline()
tempData = [] #缓存列表
fileNum = 1
if not os.path.isdir(targetFolder): #如果目标目录不存在,则创建
os.mkdir(targetFolder)
while dataLine: #有数据
for row in range(number):
tempData.append(dataLine) #将一行数据添加到列表中
dataLine = sFile.readline()
if not dataLine :
break
tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + str(fileNum) + ".txt")
tFile = open(tFilename, 'a+') #创建小文件
tFile.writelines(tempData) #将列表保存到文件中
tFile.close()
tempData = [] #清空缓存列表
print(tFilename + " 创建于: " + str(time.ctime()))
fileNum += 1 #文件编号

sFile.close()

if __name__ == "__main__" :
FileSplit("access.log","access")
#coding:utf-8
#file: Map.py

import os,os.path,re

def Map(sourceFile, targetFolder):
sFile = open(sourceFile, 'r')
dataLine = sFile.readline()
tempData = {} #缓存列表
if not os.path.isdir(targetFolder): #如果目标目录不存在,则创建
os.mkdir(targetFolder)
while dataLine: #有数据
p_re = re.compile(r'(GET|POST)\s(.*?)\sHTTP/1.[01]',re.IGNORECASE) #用正则表达式解析数据
match = p_re.findall(dataLine)
if match:
visitUrl = match[0][1]
if visitUrl in tempData:
tempData[visitUrl] += 1
else:
tempData[visitUrl] = 1
dataLine = sFile.readline() #读入下一行数据

sFile.close()

tList = []
for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):
tList.append(key + " " + str(value) + '\n')

tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + "_map.txt")
tFile = open(tFilename, 'a+') #创建小文件
tFile.writelines(tList) #将列表保存到文件中
tFile.close()

if __name__ == "__main__" :
Map("access\\access.log1.txt","access")
Map("access\\access.log2.txt","access")
Map("access\\access.log3.txt","access")
#coding:utf-8
#file: Rece.py

import os,os.path,re

def Rece(sourceFolder, targetFile):
tempData = {} #缓存列表
p_re = re.compile(r'(.*?)(\d{1,}$)',re.IGNORECASE) #用正则表达式解析数据
for root,dirs,files in os.walk(sourceFolder):
for fil in files:
if fil.endswith('_map.txt'): #是rece文件
sFile = open(os.path.abspath(os.path.join(root,fil)), 'r')
dataLine = sFile.readline()

while dataLine: #有数据
subdata = p_re.findall(dataLine) #用空格分割数据
#print(subdata[0][0]," ",subdata[0][1])
if subdata[0][0] in tempData:
tempData[subdata[0][0]] += int(subdata[0][1])
else:
tempData[subdata[0][0]] = int(subdata[0][1])
dataLine = sFile.readline() #读入下一行数据

sFile.close()

tList = []
for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):
tList.append(key + " " + str(value) + '\n')

tFilename = os.path.join(sourceFolder,targetFile + "_rece.txt")
tFile = open(tFilename, 'a+') #创建小文件
tFile.writelines(tList) #将列表保存到文件中
tFile.close()

if __name__ == "__main__" :
Rece("access","access")

㈡ python log日志怎么写 案例

python中,logging模块主要是处理日志的。
所谓日志,可理解为在软件运行过程中,所记录的的一些运行情况信息
软件开发人员可以根据自己的需求添加日志,日志可以帮助软件开发人员
了解软件的运行信息,对软件的维护尤为重要。

㈢ Python记录详细调用堆栈日志的方法

Python记录详细调用堆栈日志的方法
这篇文章主要介绍了Python记录详细调用堆栈日志的方法,涉及Python调用堆栈日志的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
import sys
import os
def detailtrace(info):
retStr = ""
curindex=0
f = sys._getframe()
f = f.f_back # first frame is detailtrace, ignore it
while hasattr(f, "f_code"):
co = f.f_code
retStr = "%s(%s:%s)->"%(os.path.basename(co.co_filename),
co.co_name,
f.f_lineno) + retStr
f = f.f_back
print retStr+info
def foo():
detailtrace("hello world")
def bar():
foo()
def main():
bar()
if __name__ == "__main__":
main()

输出:

aaa1.py(<mole>:27)->aaa1.py(main:24)->aaa1.py(bar:21)->aaa1.py(foo:18)->hello world

希望本文所述对大家的Python程序设计有所帮助。

㈣ python 读取日志文件

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


withopen('log.txt','r')asf:
foriinf:
ifdt.strftime(dt.now(),'%Y-%m-%d')ini:
#判断是否当天时间
if'ERROR'iniand'atcom.mytijian'ini:
#判断此行中是否含有'ERROR'及'atcom.mytijian'
if((dt.now()-dt.strptime(i.split(',')[0],'%Y-%m-%d%H:%M:%S')).seconds)<45*60:
#判断时间是为当前45分钟内
printi

㈤ python写日志需要输出什么信息

记录某个时间点发生了什么事情,错误信息、警告信息、提示信息、调试信息等

㈥ python日志记录模块主要作用是什么呢,求具体例子

4个主要的组件
logger: 日志类,应用程序往往通过调用它提供的api来记录日志;
handler: 对日志信息处理,可以将日志发送(保存)到不同的目标域中;
filter: 对日志信息进行过滤;
formatter:日志的格式化;

㈦ python日志怎么配置压缩

#!/usr/bin/env python#-*- coding: utf-8 -*-#import datetimeimport osimport zipfile#计算昨天的时间time = datetime.datetime.now()
delta = datetime.timedelta(days=-1)
n_days = time + delta
yestoday = n_days.strftime('%Y-%m-%d')
name = 'app.' +yestoday +'.log'#print (name)def zip_files(file,file_news):
file = '/data/server/apps/rules_scalability/logs/' +name #文件名
# print(file)
file_news = '/data/server/apps/rules_scalability/logs/' +name +'.zip' #文件压缩后的名
#print(file_news)
f = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED,allowZip64=True)
f.write(file,name) #name文件解压后的名 f.close()
os.remove(file) #删除源文件file = '/data/server/apps/rules_scalability/logs/' +name
file_news = '/data/server/apps/rules_scalability/logs/' +name +'.zip'zip_files(file,file_news)

㈧ python里如何提取日志中的错误信息

只要进行提取日志中的错误信息,那么你可以编辑一段程序,然后这样的话才能够完成达到提取的。

㈨ Python语言扫描日志并统计

修复了一些小的拼写错误
修复了出现无效数据行会出现错误的BUG
修复了最小值统计方法的错误

===================下面开始咯log.py========
# -*- coding: cp936 -*-
#上一句不可以删!表示中文路径是GBK编码
importdatetime
#处理时间的模块
defsparse(target='log.txt') :
tgfile = file(target,"r")
event={}
#event是一个字典,key是事件的编号,value是数据(可以利用嵌套来扩展数据)
linelog = "Not Empty"
whilelinelog:
linelog = tgfile.readline()
data = linelog.split('')
#按空格将一行数据分为列表
# printdata #testing
iflen(data) > 4 : #有效的数据行
time1 = data[2][1:] + '' + data[3][:-1]
#将时间处理为(字符串):年-月-日 小时:分钟:秒
time2 = datetime.datetime.strptime(time1,'%Y-%m-%d %H:%M:%S')
#将时间识别为datetime类
if data[5] == "begin:" and data[6][:2] == "OK" :
#我不知道有没有 requestbegin: fail 这个东西,没有就把后半删掉吧!
ifnotevent.has_key(data[0]) :
#第一次发生某id的事件时初始化数据
event[data[0]]=[[1,time2,0]]
#我设置的value是一个列表,每个元素是一次记录,包括[是否没结束,开始时间,结束时间]。
else :
event[data[0]].append([1,time2,0])
#已经有过记录了就在记录后加一条新记录
ifdata[5] == "end:"anddata[6][:2] == "OK" :
#我想应该没有不出现begin就直接end的事件吧……
event[data[0]][-1][0]=0 #最后一条记录中写入:事件已经结束
event[data[0]][-1][2]=time2 #最后一条记录写入:记录结束时间
#如果还要处理其他的什么情形在这里添加if的判断
tgfile.close()
returnevent

defanalysis(target='log.txt') :
event = sparse(target)
#调用上面定于的sparse方法。其实简单的处理用不着这么做的……单纯为了扩展性
static = {}
#用于统计结果的字典(其key和event中的key相同)
foroneeventinevent :
#每个事件的记录
static[oneevent]=[0,0,0,0,-1]
#初始化每个事件的统计:[成功发生次数,总发生次数,总发生时间,最大发生时间,最小发生时间]
foronerecordinevent[oneevent] :
#每个事件的一次记录
static[oneevent][0] += 1 #总发生次数加一
if onerecord[0] == 0 : #成功事件
static[oneevent][1] += 1
time_delta = onerecord[2] - onerecord[1]
#计算结果是一个timedelta类型
inttimedelta = time_delta.days *24*60*60 + time_delta.seconds
#将时间差转化为以秒计算的整数
if inttimedelta > static[oneevent][3] :
static[oneevent][3] = inttimedelta #统计最大值
if inttimedelta < static[oneevent][4] or static[oneevent][4] < 0 :
static[oneevent][4] = inttimedelta #统计最小值
static[oneevent][2] += inttimedelta
return static

===================下面是log.txt===========
#10.0.0.0[2007-06-1223:27:08]requestbegin:OK
#30.0.0.0[2007-06-1223:28:08]requestbegin:fail
#10.0.0.0[2007-06-1223:37:08]requestbegin:OK
#10.0.0.0[2007-06-1223:37:18]requestforadata:OK
#10.0.0.0[2007-06-1223:37:19]receivedsomedata:OK
#10.0.0.0[2007-06-1300:27:08]requestend:OK
#20.0.0.0[2007-06-1300:37:08]requestbegin:OK
#20.0.0.0[2007-06-1300:47:08]requestend:OK
systemERROR:reboot
Another Invalid Line

#10.0.0.0[2007-06-1323:28:18]requestbegin:OK
#70.0.0.0[2007-06-1323:29:08]requestbegin:OK
#70.0.0.0[2007-06-1323:30:18]requestend:OK
#40.0.0.0[2007-06-1323:33:08]requestbegin:OK
#40.0.0.0[2007-06-1323:35:23]requestend:OK
#40.0.0.0[2007-06-1323:37:08]requestbegin:OK
#40.0.0.0[2007-06-1323:43:38]requestend:OK
#50.0.0.0[2007-06-1323:47:08]requestbegin:OK
#10.0.0.0[2007-06-1323:57:48]requestbegin:OK
#50.0.0.0[2007-06-1323:59:08]requestend:OK

===================下面是使用和输出========
importlog
output = log.analysis()
#或者直接log.analysis()

=============输出============
{'#2': [1, 1, 600, 600, 600], '#1': [4, 1, 3000, 3000, 3000], '#7': [1, 1, 70, 70, 70], '#5': [1, 1, 720, 720, 720], '#4': [2, 2, 525, 390, 135]}

比如#1事件,总次数output['#1'][0]==4次
成功次output['#1'][1]==1次
失败次output['#1'][0]-output['#1'][1]==3次
总时间output['#1'][2]==3000秒
平均时间output['#1'][2]/output['#1'][1]==3000/1==3000秒
最大时间output['#1'][3]==3000秒
最小时间output['#1'][4]==3000秒
共有len(output)==5种ID事件

㈩ PYTHON使用日记之怎么找到linux系统上django的安装路径

python的话,你可以把python的安装环境加到系统变量(我记得是自动添加的,可以在dos下直接运行python)
至于django的话,可以直接运行django-admin startproject mysite2(django-admin不用.py),不用python django-admin.py startproject mysite2(如果要的话,需要在python安装包下的script添加到系统环境变量)

热点内容
一加存储路径 发布:2025-01-19 18:21:01 浏览:446
sqlserver误删 发布:2025-01-19 18:21:00 浏览:649
球球安全中心动态密码在哪里 发布:2025-01-19 18:20:23 浏览:790
python读取config文件 发布:2025-01-19 18:15:10 浏览:458
android生成so 发布:2025-01-19 18:14:33 浏览:697
比亚迪汉ev家用哪个配置值得 发布:2025-01-19 18:08:02 浏览:382
aspnet批量上传文件 发布:2025-01-19 17:59:36 浏览:395
攻击服务器ip会不会判刑 发布:2025-01-19 17:59:28 浏览:32
脚本错误怎么关闭 发布:2025-01-19 17:59:28 浏览:292
51汇编编译程序 发布:2025-01-19 17:42:36 浏览:27