Well, you could *try* ;-). Okay, here's a one-pass approach:
#!/usr/bin/env python import re # Regular expressions stolen from PyCookbook: # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/132326 sec = re.compile(r'^\[(.*)\]') eq = re.compile(r'^([^=]+)=(.*)') def main(fname='file.ini',pattern='_at'): holder = None pat = re.compile(pattern) for line in open(fname).xreadlines(): if sec.match(line): # We've found a new section. Before we overwrite the # holder dictionary, search through the last one if holder and holder.has_key('Name') and pat.search(holder['Name']): print holder # Now create a new dictionary section_name = sec.findall(line)[0] holder = dict(section_name=section_name) if eq.match(line): key,val = eq.findall(line)[0][:2] holder[key] = val return if __name__ == '__main__': main() --- Max Noel <[EMAIL PROTECTED]> wrote: > > On Dec 3, 2004, at 21:34, Rick Muller wrote: > > > The file type you mention is also called an INI > file, > > and is used for Windows initialization scripts, > among > > other things. > > > > There's a nice recipe on this in the Python > Cookbook: > > > http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65334 > > > > This will read your file in as a dictionary. You > can > > then do searches through lists of the keys: > > > > mydict = LoadConfig(file.ini) > > for key in mydict.keys(): > > if re.search(key,"_at"): > do_something(mydict[key]) > > Given the size of the file, I don't think that's a > good idea... > > -- Max > maxnoel_fr at yahoo dot fr -- ICQ #85274019 > "Look at you hacker... A pathetic creature of meat > and bone, panting > and sweating as you run through my corridors... How > can you challenge a > perfect, immortal machine?" > > ===== Rick Muller [EMAIL PROTECTED] __________________________________ Do you Yahoo!? Send a seasonal email greeting and help others. Do good. http://celebrity.mail.yahoo.com _______________________________________________ Tutor maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/tutor
