自己是python 门外汉,由于工作需要,想要把很长的日志简化成 自己关心的内容,
由于没有写python的同事,那就靠自己吧。
需求:日志很长,有部分日志不需要关心,只想读取含有特殊关键字的行。
比如,一个airflow任务下有很多小作业,以python文件形式存储的,我想知道此任务下有什么小作业,可以看的简单明了。
生成的结果如下:
代码如下:
read_particular_log.py:
# -*- coding: utf-8 -*-
'''
读取特殊日志
'''
import os
import smtplib
import time
import datetime
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
#读取特殊日志
def getContent(resouce, final):
f = open(resouce, 'r')
finalfile = open(final, 'w')
try:
for line in f:
if "--job_id" in line or "task_id = " in line or "BashOperator" in line :
# 按行读取,如果该行包含“ERORR”字符串,则将该行写入目标文件
finalfile.write(line)
finally:
f.close()
finalfile.close()
# 获取昨天的时间,这块可以任意改成自己需要的时间
def get_today_date():
today = datetime.datetime.now()
#oneday = today - datetime.timedelta(days=1)
oneday = today
today = oneday.strftime("%Y%m%d")
return today
if __name__ == '__main__':
today = get_today_date()
sourcedir = "C:/Users/lizhenzhu/Desktop/python/py/" +"hry_etl_log.py" # 需要读取的源文件路径
objectdir = "C:/Users/lizhenzhu/Desktop/python/log/hry_etl_log.log" # 存放的目标文件
getContent(sourcedir, objectdir)
print ("2")
完成。