使用prettytable库按表格的形式美化输出结果
效果如图:
表格中可接收列表格式的数据,列表中装字符串
# 引入模块
import prettytable as pt# 创建表格与表头,包含五列,分别为train-epoch,class,precision,recall和f1
table = pt.PrettyTable(["{} {}".format(Train, epoch), "class", "Precision", "Recall",'F1'])
# 随后可以向其中添加任意标签与值,表格额大小会自动根据文字适应
# 注意保持数据格式为list + str
table.add_row(["Entity"] +["all"] + ["{:3.4f}".format(x) for x in [e_p, e_r,e_f1]])# 顺便可以加入到log文件中
# 定义log并初始化
def get_logger(name):pathname = "./log/{}_{}.txt".format(name, time.strftime("%m-%d_%H-%M-%S"))logger = logging.getLogger() # 创建一个日志记录器对象logger.setLevel(logging.INFO) # 将其设置为INFO级别formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s",datefmt='%Y-%m-%d %H:%M:%S')file_handler = logging.FileHandler(pathname) # 创建一个文件处理器,用于将日志信息写入日志文件file_handler.setLevel(logging.DEBUG) # 设置文件处理器级别为DEBUGfile_handler.setFormatter(formatter) # 设置文件处理器格式 stream_handler = logging.StreamHandler() # 创建一个流处理器,用于将日志信息输出到控制台stream_handler.setLevel(logging.DEBUG) # 设置流处理器级别为DEBUGstream_handler.setFormatter(formatter) # 设置流处理器格式# 将文件和流处理器添加到日志记录器对象中logger.addHandler(file_handler)logger.addHandler(stream_handler)return loggerlogger = get_logger(save_file) # 调用log
logger.info("\n{}".format(table)) #将table写入文件同时在控制台输出