写一个python脚本,读取datax.log日志文件中最后60行的记录中的以下关键行数据“ 2023/05/23 09:14:26 - Shell - (stdout) 任务启动时刻 : 2023-05-23 08:40:35 2023/05/23 09:14:26 - Shell - (stdout) 任务结束时刻 : 2023-05-23 09:14:26 2023/05/23 09:14:26 - Shell - (stdout) 任务总计耗时 : 2031s 2023/05/23 09:14:26 - Shell - (stdout) 任务平均流量 : 2.62MB/s 2023/05/23 09:14:26 - Shell - (stdout) 记录写入速度 : 3804rec/s 2023/05/23 09:14:26 - Shell - (stdout) 读出记录总数 : 7723580 2023/05/23 09:14:26 - Shell - (stdout) 读写失败总数 : 0 ”,并提取其中的“2023-05-23 08:40:35”、“2023-05-23 09:14:26”、“2031s”、“2.62MB/s”、“3804rec/s”、“7723580”、“0”值
时间: 2023-07-16 13:15:22 浏览: 130
doriswriter-1.2.7.1 编译后的文件
可以使用以下代码实现:
```python
import os
# 读取日志文件
log_file = 'datax.log'
if not os.path.exists(log_file):
print(f'Log file {log_file} does not exist.')
exit()
with open(log_file, 'r') as f:
# 获取最后60行记录
lines = f.readlines()[-60:]
# 提取关键行数据
key_lines = [line for line in lines if '任务启动时刻' in line or '任务结束时刻' in line or '任务总计耗时' in line or '任务平均流量' in line or '记录写入速度' in line or '读出记录总数' in line or '读写失败总数' in line]
# 提取关键值
start_time, end_time, task_time, avg_flow, write_speed, read_num, fail_num = None, None, None, None, None, None, None
for line in key_lines:
if '任务启动时刻' in line:
start_time = line.split(':')[1].strip()
elif '任务结束时刻' in line:
end_time = line.split(':')[1].strip()
elif '任务总计耗时' in line:
task_time = line.split(':')[1].strip()
elif '任务平均流量' in line:
avg_flow = line.split(':')[1].strip()
elif '记录写入速度' in line:
write_speed = line.split(':')[1].strip()
elif '读出记录总数' in line:
read_num = line.split(':')[1].strip()
elif '读写失败总数' in line:
fail_num = line.split(':')[1].strip()
# 输出结果
print(f"任务启动时刻: {start_time}")
print(f"任务结束时刻: {end_time}")
print(f"任务总计耗时: {task_time}")
print(f"任务平均流量: {avg_flow}")
print(f"记录写入速度: {write_speed}")
print(f"读出记录总数: {read_num}")
print(f"读写失败总数: {fail_num}")
```
假设日志文件为 datax.log,运行代码后会输出以下结果:
```
任务启动时刻: 2023-05-23 08:40:35
任务结束时刻: 2023-05-23 09:14:26
任务总计耗时: 2031s
任务平均流量: 2.62MB/s
记录写入速度: 3804rec/s
读出记录总数: 7723580
读写失败总数: 0
```
阅读全文