-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathParser.py
51 lines (43 loc) · 1.94 KB
/
Parser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import os
class Parser:
def __init__(self, exp_id):
self.exp_id = exp_id
self.result = dict()
self.parse()
def parse(self):
result_path = './experiment/' + str(self.exp_id) + '/result/'
for file in os.listdir(result_path):
kg = file[:-4]
self.result[kg] = list()
with open(result_path + file, 'r', encoding='utf-8') as fp:
while True:
line = fp.readline().strip()
if len(line) == 0:
break
record = dict()
if 'F' in line:
if '[' in line and ']' in line:
record['gan_time'] = float(line.split(' ')[0][1:-1])
else:
record['gan_time'] = None
record['gan_list'] = line.split(':')[1].strip().split(' ')
line = fp.readline().strip()
if len(line) == 0:
break
else:
record['gan_time'] = None
record['gan_list'] = None
if '*' in line:
record['improve'] = True
line = line.replace('*', '')
else:
record['improve'] = False
if '[' in line and ']' in line:
record['time'] = float(line.split(' ')[0][1:-1])
record['round'] = int(line.split(' ')[1])
record['accuracy'] = float(line.split(' ')[2])
else:
record['time'] = None
record['round'] = int(line.split(' ')[0])
record['accuracy'] = float(line.split(' ')[1])
self.result[kg].append(record)