1
2 """
3 Collects data and writes it to a CSV-file
4 """
5
6 import csv
7
9 """
10 Collects data like a dictionary. Writes it to a line in a CSV-file.
11 If the dictionary is extended the whole file is rewritten
12 """
14 """@param name: name of the file"""
15 self.name=name
16 self.headers=[]
17 self.headerDict={}
18 self.data=[self.headerDict]
19 self.current={}
20 self.file=None
21 self.writer=None
22 self.renew=True
23
25 """Sets a value in the current dataset
26 @param key: the key
27 @param value: and it's value"""
28
29 if not key in self.headers:
30 self.headers.append(key)
31 self.renew=True
32 self.headerDict[key]=key
33
34 self.current[key]=value
35
37 """Writes a line to disk and starts a new one"""
38
39 self.data.append(self.current)
40 if self.renew:
41 if self.file!=None:
42 self.file.close()
43 self.file=file(self.name,"w")
44 self.writer=csv.DictWriter(self.file,self.headers)
45 self.writer.writerows(self.data)
46 self.renew=False
47 else:
48 self.writer.writerow(self.current)
49 self.current={}
50 self.file.flush()
51
53 """Resets the last line"""
54 self.current={}
55