代码拉取完成,页面将自动刷新
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文件。")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。