之前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