当前位置:首页 > Software > Python > 正文内容

(原创)使用Python将Leda编码规则检查报告转换为Excel形式

chanra1n2年前 (2023-05-21)Python4200
#Author       : /
#Description  : A tools for leda to analysis results
#Time         : 20220810
#Verision     : 1.2
#CopyRights   : myfpga.cn All Right Reservers. 
import os

print("注意!请将log文件重命名为leda.log,并将该文件转换为utf-8格式,然后放置于本脚步的上一层目录!")
os.system("pause")

#***************************************************************************************************************

print("1.Creating Leda Log Temperature File...")
file_input = open('../leda.log','rb')
file_output = open('../result_tmp_warn.csv','w')
for line in file_input.readlines():
    if "[WARNING]" in bytes.decode(line):
        temp_line = bytes.decode(line)
        temp_line = temp_line.replace(',',' ')
        temp_line = temp_line.replace('\n',' ')
        temp_line = temp_line.split(':')
        try:
            if temp_line[0] != "" :
                file_output.write(temp_line[0]+","+temp_line[1]+","+temp_line[2]+","+temp_line[3]+"\n")
        except:
            print(".")
file_input.close()
file_output.close()
print("1.1 Done!")

file_input = open('../leda.log','rb')
file_output = open('../result_tmp_note.csv','w')
for line in file_input.readlines():
    if "[NOTE]" in bytes.decode(line):
        temp_line = bytes.decode(line)
        temp_line = temp_line.replace(',',' ')
        temp_line = temp_line.replace('\n',' ')
        temp_line = temp_line.split(':')
        try:
            if temp_line[0] != "" :
                file_output.write(temp_line[0]+","+temp_line[1]+","+temp_line[2]+","+temp_line[3]+"\n")
        except:
            print(".")
file_input.close()
file_output.close()
print("1.2 Done!")

file_input = open('../leda.log','rb')
file_output = open('../result_tmp_error.csv','w')
for line in file_input.readlines():
    if "[ERROR]" in bytes.decode(line):
        temp_line = bytes.decode(line)
        temp_line = temp_line.replace(',',' ')
        temp_line = temp_line.replace('\n',' ')
        temp_line = temp_line.split(':')
        try:
            if temp_line[0] != "" :
                file_output.write(temp_line[0]+","+temp_line[1]+","+temp_line[2]+","+temp_line[3]+"\n")
        except:
            print(".")
file_input.close()
file_output.close()
print("1.3 Done!")

#***************************************************************************************************************

print("2.Analysising Leda Log File...")

file_input = open('../result_tmp_note.csv','r')
file_output = open('../result_note.csv','w')
temp_last = "  ,  ,  ,  ,"
isfirstline = 1
for line in file_input.readlines():
    if isfirstline == 1:
        isfirstline = 0
        file_output.write(line.split(',')[0]+","+line.split(',')[2]+",")
        temp_last = line
    else:
        if line.split(',')[0] == temp_last.split(',')[0] and line.split(',')[3] == temp_last.split(',')[3]:
            if(line.split(',')[1] != temp_last.split(',')[1]):
                file_output.write(' '+line.split(',')[1])
        else :
            file_output.write(","+temp_last.split(',')[3])
            file_output.write(line.split(',')[0]+","+line.split(',')[2]+","+line.split(',')[1])
        temp_last = line
file_output.write(","+line.split(',')[3]+"\n")
file_input.close()
file_output.close()
print("2.1 Done!")

file_input = open('../result_tmp_warn.csv','r')
file_output = open('../result_warn.csv','w')
temp_last = "  ,  ,  ,  ,"
isfirstline = 1
for line in file_input.readlines():
    if isfirstline == 1:
        isfirstline = 0
        file_output.write(line.split(',')[0]+","+line.split(',')[2]+",")
        temp_last = line
    else:
        if line.split(',')[0] == temp_last.split(',')[0] and line.split(',')[3] == temp_last.split(',')[3]:
            if(line.split(',')[1] != temp_last.split(',')[1]):
                file_output.write(' '+line.split(',')[1])
        else :
            file_output.write(","+temp_last.split(',')[3])
            file_output.write(line.split(',')[0]+","+line.split(',')[2]+","+line.split(',')[1])
        temp_last = line
file_output.write(","+line.split(',')[3]+"\n")
file_input.close()
file_output.close()
print("2.2 Done!")

file_input = open('../result_tmp_error.csv','r')
file_output = open('../result_error.csv','w')
temp_last = "  ,  ,  ,  ,"
isfirstline = 1
for line in file_input.readlines():
    if isfirstline == 1:
        isfirstline = 0
        file_output.write(line.split(',')[0]+","+line.split(',')[2]+",")
        temp_last = line
    else:
        if line.split(',')[0] == temp_last.split(',')[0] and line.split(',')[3] == temp_last.split(',')[3]:
            if(line.split(',')[1] != temp_last.split(',')[1]):
                file_output.write(' '+line.split(',')[1])
        else :
            file_output.write(","+temp_last.split(',')[3])
            file_output.write(line.split(',')[0]+","+line.split(',')[2]+","+line.split(',')[1])
        temp_last = line
file_output.write(","+line.split(',')[3]+"\n")
file_input.close()
file_output.close()
print("2.3 Done!")

#***************************************************************************************************************

print("3.Cleaning Temperature File...")
os.remove('../result_tmp_error.csv')
print("3.1 Done!")
os.remove('../result_tmp_note.csv')
print("3.2 Done!")
os.remove('../result_tmp_warn.csv')
print("3.3 Done!")


扫描二维码推送至手机访问。

版权声明:本文由我的FPGA发布,如需转载请注明出处。

本文链接:https://world.myfpga.cn/index.php/post/311.html

分享给朋友:

“(原创)使用Python将Leda编码规则检查报告转换为Excel形式” 的相关文章

Python关于turtle的函数名

Python关于turtle的函数名

turtle.forward(distance)                   向当前画笔方向移动distance像素长度turtle.backward(distance)              向当前画笔相反方向移动distance像素长度turtle.right(degree)    ...

math库的使用

math库的使用

math库包括4个数学常数math.pi      圆周率math.e       自然对数math.inf     正无穷大,负无穷大为-math.infmath.nan     非浮点数标记math库常用函数math.cell(x)      向上取整,返回不小于x的最小整数math.facto...

  索引运算符【】

索引运算符【】

选择字符串的子序列语法【start:finish】        start:子序列开始位置的索引值        finish:子序列结束位置的下一个字符的索引值如果不提供start或者finish,默认start为第一个字符,finish为最后一个字符。例如>>>my_str=...

顺序查找

顺序查找

如果需要查找某个特定值的位置(以便能够替换或删除它),可以直接使用index方法。searchedValue=100 #values是之前定义好的一个列表 if searchedValue in walues:     pos=values.index(searchedValue)     ...

体温打卡python 可通过账户密码获取对应ID号

体温打卡python 可通过账户密码获取对应ID号

仅用于学习和测试,请勿自动填报或者干任何违法的事情import datetime import hashlib import random from urllib.parse import quote import req...

Python自动清理错误图片,深度学习训练数据集准备

Python自动清理错误图片,深度学习训练数据集准备

使用python运行from PIL import Image from pathlib import Path import os   path = r'.'  ...