1 import os,sys
2 import csv
3
4 file_folder = sys.argv[1]
5 # file_folder = r"/Users/vito/Desktop/0120 "
6 final_info={}
7 txt_path_list=[]
8
9 # 如需要处理更多log信息,在下面三行最后面添加; 如果读不到数据 可以检查关键字是否一致
10 fileHead = ('distance', 'center_4edge_mean_MTF50_Y','left_diff_MTF50_Y')
11 request_testItem = ('center_4edge_mean_MTF50_Y','left_diff_MTF50_Y')
12 distance_list = ["1750", "1755", "1760", "1765", "1770", "1775", "1780", "1785", "1790", "1795", "1800", "1805", "1810", "1815", "1820", "1825", "1830", "1835", "1840", "1845", "1850"]
13
14 def handle_txt(txt_path_list,final_info):
15 for path in txt_path_list:
16 with open(path,'r') as f:
17 content = f.readlines()
18 log_info = {}
19 for line in content:
20 handled_line_info = line.strip().split(':=') # name:=值
21 # print(handled_line_info)
22 if handled_line_info[0] in request_testItem:
23 log_info[handled_line_info[0]]=handled_line_info[1] # {name:值}
24 for distance in distance_list:
25 if distance in path:
26 final_info[distance]=log_info # 字典格式为:distance:{name:值,name:值,name:值}
27 return final_info
28
29 def update_csv_log(path,final_info):
30 with open(path,'w') as f:
31 wr = csv.writer(f, dialect='excel')
32 wr.writerow(fileHead)
33 for distance,txt_info in final_info.items():
34 data_value = []
35 for item in request_testItem:
36 item_value = final_info[distance].get(item)
37 data_value.append(item_value)
38 new_row = (distance,*tuple(data_value))
39 wr.writerow(new_row)
40
41 def get_txt_path(filefolder,txt_path_list):
42 tmp_path_List = os.listdir(filefolder)
43 for File in tmp_path_List:
44 subPath = os.path.join(filefolder,File)
45 if os.path.isdir(subPath):
46 get_txt_path(subPath,txt_path_list)
47 elif subPath.endswith('txt'):
48 txt_path_list.append(subPath)
49 txt_path_list.sort()
50 # print(txt_path_list)
51 return txt_path_list
52
53
54 txt_path_list = get_txt_path(file_folder,txt_path_list)
55 final_info = handle_txt(txt_path_list,final_info)
56 update_csv_log(file_folder+'/WD_summary.csv',final_info)