python从目录下log文件中提取倒数第二行最后一个数据,其中log是以日期命名,并根据数据生成曲线
时间: 2024-12-17 18:34:58 浏览: 2
在Python中,你可以使用`glob`模块来定位到指定日期的log文件,然后使用`datetime`处理文件名以确定倒数第二行。接着,读取文件内容并找到倒数第二行。由于文本文件的行数通常较小,我们可以一次性读取所有行并操作。假设数据存储在每行的最后一列,你可以使用`re`模块匹配分割出数字。
以下是一个基本步骤的例子:
```python
import glob
import datetime
import re
def extract_last_data(directory):
# 获取当前日期的日志文件
log_files = glob.glob(directory + "/*.log")
if not log_files:
print("No log files found.")
return None
# 按文件修改时间排序,获取最近的两个文件
recent_logs = sorted(log_files, key=lambda x: os.path.getmtime(x))[-2:]
for file in recent_logs:
with open(file, 'r') as f:
lines = f.readlines()
# 倒数第二行
last_line = lines[-2]
# 提取最后一列数据,假设数据由逗号分隔
data_pattern = r"(\d+)$"
match = re.search(data_pattern, last_line)
if match:
data = float(match.group(1))
# 根据数据生成曲线(这里仅示例如何提取,具体曲线生成需要额外库如matplotlib)
plot_data(data)
else:
print(f"No data found in the last line of {file}")
# 替换这里的'directory'为你实际的日志文件目录
directory = "your_log_directory/"
extract_last_data(directory)
# 示例中的plot_data函数:
def plot_data(value):
import matplotlib.pyplot as plt
# 这里只是创建一个简单的图表
plt.plot([value])
plt.show()
```
阅读全文