Browse Source

改为获取所有str之后再clear,尝试修复闪的问题(还是不行)

master
lxbhahaha 1 year ago
parent
commit
0e3748b2c8
  1. 40
      check.py

40
check.py

@ -149,8 +149,8 @@ def get_bar(bar_ratio, max_len, color=False):
return ''.join(res)
def print_table_res(data_list):
def print_line(line_type, width_list, spaces=[]):
def get_table_res(data_list):
def get_line(line_type, width_list, spaces=[]):
assert line_type in ['up', 'middle', 'bottom']
str_list = []
@ -181,15 +181,18 @@ def print_table_res(data_list):
else:
str_list.append(table_icon['mid'][line_type])
print(''.join(str_list))
return ''.join(str_list)
# print(''.join(str_list))
# print('TODO')
print(time.strftime("%Y%m-%d%H:%M:%S", time.localtime(time.time())))
result_str = []
result_str.extend([time.strftime("%Y%m-%d%H:%M:%S", time.localtime(time.time())), '\n'])
# print(time.strftime("%Y%m-%d%H:%M:%S", time.localtime(time.time())))
cell_width_list = [7, 20, 24, 15]
len_last3 = cell_width_list[1] + cell_width_list[2] + cell_width_list[3] + 2
# 输出head ------------------------------------------
print_line('up', cell_width_list)
result_str.extend([get_line('up', cell_width_list), '\n'])
str_list = []
str_list.append(table_icon['vline'])
str_list.append(clamp_str('Title', cell_width_list[0], True))
@ -200,11 +203,11 @@ def print_table_res(data_list):
str_list.append(table_icon['vline'])
str_list.append(clamp_str('GPU-Util', cell_width_list[3], True))
str_list.append(table_icon['vline'])
print(''.join(str_list))
result_str.extend([''.join(str_list), '\n'])
# 输出内容 ------------------------------------------
for i, data in enumerate(data_list):
print_line('middle', cell_width_list)
result_str.extend([get_line('middle', cell_width_list), '\n'])
title = data['server_data']['title']
info_list = data.get('info_list', None)
if info_list:
@ -231,7 +234,8 @@ def print_table_res(data_list):
str_list.append(clamp_str(f"{util_gpu} % ", cell_width_list[3], True, 'right'))
str_list.append(table_icon['vline'])
print(''.join(str_list))
result_str.extend([''.join(str_list), '\n'])
# print(''.join(str_list))
# 第二行
str_list = []
@ -264,11 +268,12 @@ def print_table_res(data_list):
str_list.append(get_bar(util_gpu/100, cell_width_list[3], True))
str_list.append(table_icon['vline'])
print(''.join(str_list))
result_str.extend([''.join(str_list), '\n'])
# print(''.join(str_list))
# 下一张卡
if j != len(info_list)-1:
print_line('middle', cell_width_list, [0])
result_str.extend([get_line('middle', cell_width_list, [0]), '\n'])
else:
str_list = []
str_list.append(table_icon['vline'])
@ -277,9 +282,12 @@ def print_table_res(data_list):
err_info = data.get('err_info', 'error')
str_list.append(clamp_str(err_info, len_last3, True))
str_list.append(table_icon['vline'])
print(''.join(str_list))
# print(''.join(str_list))
result_str.extend([''.join(str_list), '\n'])
result_str.extend([get_line('bottom', cell_width_list), '\n'])
print_line('bottom', cell_width_list)
return ''.join(result_str)
def keep_check_one(server: dict, shared_data_list: list, server_idx: int, interval: float):
try:
@ -387,10 +395,12 @@ def realtime(args):
# 绘制
while True:
with data_list_lock:
os.system('cls' if os.name == 'nt' else 'clear')
if args.table:
print_table_res(data_list)
res_str = get_table_res(data_list)
os.system('cls' if os.name == 'nt' else 'clear')
print(res_str)
else:
os.system('cls' if os.name == 'nt' else 'clear')
print(time.strftime("%Y%m-%d%H:%M:%S", time.localtime(time.time())))
for data in data_list:
print(data['server_data']['title'] + ' ---------------')

Loading…
Cancel
Save