2 Star 0 Fork 1

余诗/autorepo-for-baseos

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
auto-analyze-multilines.py 1.97 KB
一键复制 编辑 原始数据 按行查看 历史
baijing_0022 提交于 2023-11-17 11:38 . add fourth-baselayer xls
import os
import re
import pandas as pd
def process_directory(directory_path, filter_rules):
# 获取目录中的所有txt文件
txt_files = [f for f in os.listdir(directory_path) if f.endswith('.txt')]
# 创建一个空的DataFrame来存储结果
result_df = pd.DataFrame(columns=["spec名称", "报错原因"])
# 遍历每个txt文件
for txt_file in txt_files:
file_path = os.path.join(directory_path, txt_file)
# 读取文件内容
with open(file_path, 'r', encoding='utf-8') as file:
lines = file.readlines()
# 提取匹配"error:"的行,但不包含过滤规则中的内容
error_lines = []
for i, line in enumerate(lines):
if 'error:' in line and not any(rule in line for rule in filter_rules):
# 提取前面3行、该行和后面3行
start_index = max(0, i - 3)
end_index = min(len(lines), i + 4)
context_lines = lines[start_index:end_index]
error_lines.extend(context_lines)
# 如果有匹配的行,将结果添加到DataFrame中
if error_lines:
spec_name = os.path.splitext(txt_file)[0]
result_df = pd.concat([result_df, pd.DataFrame({"spec名称": [spec_name], "报错原因": ["\n".join(error_lines)]})], ignore_index=True)
# 将结果保存到Excel文件中
output_file_path = os.path.join(directory_path, 'output-multi.xls')
result_df.to_excel(output_file_path, index=False, engine='openpyxl')
if __name__ == "__main__":
# 用户输入处理目录和多条过滤规则,以逗号分隔
directory_path = input("请输入处理目录的绝对路径:")
filter_rules_input = input("请输入过滤规则,以逗号分隔:")
filter_rules = [rule.strip() for rule in filter_rules_input.split(",")]
# 处理目录并生成结果
process_directory(directory_path, filter_rules)
print("处理完成,请查看output-multi.xls文件。")
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yushi-Icy/autorepo-for-baseos.git
[email protected]:yushi-Icy/autorepo-for-baseos.git
yushi-Icy
autorepo-for-baseos
autorepo-for-baseos
master

搜索帮助