python脚本把日志转成excel

之前go写的,转成了python版本,日志是json格式的,按行读取


{"aid":"1111","cid":"2222","callback_url":"http:\/\/ad.toutiao.com\/track\/activate\/?callback=B.eDCQxxxxxGCB&os=0&muid=","advertiser_id":"111111","callback":"B.eDCQCLGVgVmGCB"}

import pandas as pd
import json,os,argparse
from datetime import datetime, timedelta
# 创建 ArgumentParser 对象
parser = argparse.ArgumentParser(description='日志转成excel')
# 添加命令行参数选项
# 注意:这里使用 `--name` 和 `--age` 表示长选项,使用 `-n` 和 `-a` 表示短选项
parser.add_argument('-path', '--path', type=str, help='请输入日志的绝对路径',default="/usr/share/nginx/html/server-api/runtime/logs/")
parser.add_argument('-outPath', '--outPath', type=str, help='请输入生成excel的绝对路径',default="/usr/share/nginx/html/server-api/runtime/logs/")
parser.add_argument('-fileName', '--fileName', type=str, help='请输入生成文件的名字',default="广告监控")
parser.add_argument('-name', '--name', type=str, help='请输入日志的前缀',default="click")
# 解析命令行参数
args = parser.parse_args()

# excel 头
header = ['aid','cid','callback_url','advertiser_id','token']

# json写到excel
def json_to_excel(json_file, excel_file,header):
    data = []
    with open(json_file, 'r') as f:
        for line in f:
            json_data = json.loads(line.strip())
            data.append(json_data)
    df = pd.DataFrame(data)
    df.to_excel(excel_file, index=False,header=header)

# 获取前一天的日期
def getPreDay():
    # 获取当前日期时间
    current_date = datetime.now()
    # 计算昨天的日期
    yesterday = current_date - timedelta(days=1)
    # 格式化日期为字符串
    formatted_date = yesterday.strftime("%Y-%m-%d")
    # 输出格式化后的日期
    return formatted_date

# 拼接源日志完整路径
textFilePath = args.path + args.name + "-" + getPreDay() + ".log"

# 创建文件夹
if not os.path.exists(args.outPath):
    # 文件夹不存在,创建文件夹
    os.makedirs(args.outPath)

# 拼接输出日志完整路径
excel_file = args.outPath + getPreDay() + "-" + args.fileName + ".xlsx"

# 执行json转excel
json_to_excel(textFilePath, excel_file,header)

脚本执行


python xxx.py --path=./ --outPath=./ --fileName=广告监控 --name=click

posted @ 2023-11-23 12:00  朝阳1  阅读(123)  评论(0编辑  收藏  举报