jason a écrit : Just some more suggestions:
> def parselog(data): > other = 0 > records = {} > > for line in string.split(data, '\n'): for line in data.split('\n'): > str = line.strip() This will shadow the builtin 'str' type. You could reassign to 'line' instead, or manage to get stripped lines already: for line in map(str.strip, data.split('\n'): > if str[:4] == 'From': > mfrom, datum = extrfrom(str), extrdate(str) > print datum, mfrom Mixing processing with IO may not be a good idea... > elif str[:4] == 'Fold': line_type = line[:4] if line_type == 'From': # code here elif line_type == 'Fold': > folder = extrfolder(str[8:]) > records = {folder : { 'date' : datum, 'mesgbytes' : > extrmsize(str[8:]), 'mesgcount' : 1}} You now know that it should be: records[folder] = {...} > else: > other += 1 > > displrec(records) > As a last note, you may want to pay more attention to your namings... ie, 'display_records()' is much more readable than 'displrec()' and still not to long to type !-) My 2 cents (and a half) -- http://mail.python.org/mailman/listinfo/python-list