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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
import helpers, string, os
_folderinfo = {}
def load_folderinfo(filename):
global _folderinfo
try:
f = open(filename, "r")
except IOError:
_folderinfo = {}
return
while 1:
line = f.readline()
if not line:
break
foldername = string.split(line, "\n")[0]
dict = {}
while 1:
line = f.readline()
if not line or line == "\n":
break
parts = string.split(line, " ", 1)
field = parts[0]
value = string.split(parts[1], "\n")[0]
dict[field] = value
_folderinfo[foldername] = dict
f.close()
def save_folderinfo(filename):
text = []
for foldername in _folderinfo.keys():
text.append("%s\n" % foldername)
dict = _folderinfo[foldername]
for field in dict.keys():
text.append("%s %s\n" % (field, dict[field]))
text.append("\n")
text = string.join(text, "")
helpers.write_text_to_named_file(filename + ".new", text)
try:
os.remove(filename)
except os.error:
pass
os.rename(filename + ".new", filename)
def get_folderinfo(foldername, field):
try:
return _folderinfo[foldername][field]
except KeyError:
return None
def set_folderinfo(foldername, field, value):
try:
dict = _folderinfo[foldername]
except KeyError:
dict = {}
_folderinfo[foldername] = dict
dict[field] = value
def get_folders_with_info(field, value):
list = []
for foldername in _folderinfo.keys():
try:
if _folderinfo[foldername][field] == value:
list.append(foldername)
except KeyError:
pass
return list
def main():
load_folderinfo("folderinfo.test")
print get_folderinfo("/home/liw/Mail/inbox", "inbox")
set_folderinfo("/home/liw/Mail/inbox", "inbox", "no")
print get_folderinfo("/home/liw/Mail/inbox", "inbox")
save_folderinfo("folderinfo.test")
if __name__ == "__main__":
main()
|