11import os
22
33allaverages = []
4+ REPLACE = [
5+ [";" , ":" ],
6+ ["true" , "1" ],
7+ ["false" , "0" ],
8+ ["right" , "1" ],
9+ ["center" , "0" ],
10+ ["left" , "-1" ],
11+ ["Did not return" , "0" ],
12+ ["Returned to hab (Level 1)" , "1" ],
13+ ["Level 1 (HAB)" , "1" ],
14+ ["Level 1" , "1" ],
15+ ["Level 2" , "2" ],
16+ ["Level 3" , "3" ]
17+ ]
18+ for flag in REPLACE :
19+ flag [0 ] = flag [0 ].lower ()
20+
421
522def getdataforfile (filename , index , robotnumber ):
6- lines = tuple (open (filename , 'r' ))
7- lines = list (lines )
8- print (filename )
9- global allaverages
10- data = []
11- averages = []
12-
13- dates = []
14- for line in lines :
15-
16- if (lines .index (line ) != 0 ):
17- line = line .replace (";" ,":" ).replace ("true" ,"1" ).replace ("false" ,"0" ).replace ("True" ,"1" ).replace ("False" ,"0" ).replace ("Successful Climb" ,"1" ).replace ("Failed Climb" ,"0" )
18-
19-
20- if line .split ("," )[0 ] in dates :
21- continue
22- dates .append (line .split ("," )[0 ])
23- linedata = line .split ("," )
24- othervariable = ""
25- for linething in linedata [:]:
26- if linedata .index (linething ) >= 17 :
27- othervariable += linething
28- linedata .remove (linething )
29- linedata .append (othervariable )
30- data .append (linedata )
31-
32-
33- print (len (data ))
34- for i in range (len (data [0 ])):
35- totalsum = 0
36- pegPlacedAmount = 0
37- fullString = "" #used for comments
38- for roundnum in data : #actual data
39- if i == 17 :
40- try :
41- fullString += str (roundnum [i ]) + "\t \t :\t \t "
42- except IndexError as verr :
23+ if filename .endswith (".csv" ): # If it's a .csv:
24+ lines = tuple (open (filename , 'r' ))
25+ lines = list (lines )
26+ print (filename )
27+ global allaverages
28+ data = []
29+ averages = []
30+
31+ dates = []
32+ for line in lines :
33+
34+ if (lines .index (line ) != 0 ):
35+ for flag in REPLACE :
36+ if flag [0 ] in line :
37+ print (flag )
38+ while flag [0 ] in line :
39+ line = line .lower ().replace (flag [0 ], flag [1 ])
40+
41+ if line .split ("," )[0 ] in dates :
4342 continue
44- try :
45- roundnum = int (roundnum [i ])
46- except ValueError as verr :
47- continue
48- except IndexError as verr :
49- continue
50- totalsum += roundnum
51- if i == 0 :
52- averages .append (len (data ))
53- elif i == 11 :
54-
55- averages .append ('"' + fullString .replace ('"' ,"" ).replace ("," ,"." ) + '"' )
56- else :
57- averages .append (totalsum / (len (data )))
58-
59- allaverages .append (robotnumber + "," )
60- for average in averages :
61- allaverages [index ] += str (average ) + ","
62-
63-
43+ dates .append (line .split ("," )[0 ])
44+ linedata = line .split ("," )
45+ othervariable = []
46+ for linething in linedata [:]:
47+ if linedata .index (linething ) == 72 :
48+ othervariable .append (linething )
49+ linedata .remove (linething )
50+ linedata .append ('{}. By: {} , ' .format (othervariable [0 ].replace ("||" , "|" ).replace ("|n" , " " ).replace ("|q" , '"' ).replace (";" , ":" ).replace ("|ob" , "{" ).replace ("|cb" , "}" ), othervariable [1 ]))
51+ data .append (linedata )
52+ print (len (data ))
53+ for i in range (len (data [0 ])):
54+ totalsum = 0
55+ fullString = "" # used for comments
56+ for roundnum in data : # actual data
57+ try :
58+ roundnum = float (roundnum [i ])
59+ totalsum += roundnum
60+ except ValueError :
61+ fullString += roundnum [i ]
62+ if i == 0 :
63+ averages .append (len (data ))
64+ elif i == 72 :
65+ averages .append (fullString [:- 3 ])
66+ else :
67+ averages .append (totalsum / (len (data )))
68+
69+ allaverages .append (robotnumber .replace (".csv" , "" )+ "," )
70+ for average in averages :
71+ allaverages [index ] += str (average ) + ","
72+
73+
6474foldername = input ("folderpath: " )
6575if not foldername .endswith ("\\ " ):
6676 foldername += "\\ "
@@ -73,20 +83,20 @@ def getdataforfile(filename, index, robotnumber):
7383files .remove ("results" )
7484files .remove ("EventData" )
7585
76- #files = ["772.csv"]
86+ # files = ["772.csv"]
7787
7888for i in range (len (files )):
7989 getdataforfile (foldername + files [i ], i , files [i ])
8090
8191lines = tuple (open (foldername + files [0 ], 'r' ))
8292
8393
84- f = open (foldername + '\\ results\\ all robots.csv' , 'w' )
94+ f = open (foldername + '\\ results\\ all robots averaged .csv' , 'w' )
8595f .write ("Robot Number," + lines [0 ])
8696
8797for lineofaverages in allaverages :
8898 f .write ("\n " + lineofaverages )
8999
90100print (allaverages )
91101
92- f .close ()
102+ f .close ()
0 commit comments