On Mar 8, 10:35 am, [EMAIL PROTECTED] wrote: (snipped)
> > Ok, regex was my first thought because I used to use grep with Perl > and shell scripting to grab everything from one pattern to another > pattern. The file is just an unformatted file. What is below is > exactly what is in the file. There are no spaces between the beginning > and ending tags and the content. Would you recommend using spaces > there? And if so, why? > > A sample of the file: You can use iterators: import StringIO import itertools def group(line): if line[-6:-1] == 'START': group.current = group.current + 1 return group.current group.current = 0 data = """ #VS:COMMAND:df:START Filesystem 1K-blocks Used Available Use% Mounted on /dev/vzfs 20971520 517652 20453868 3% / tmpfs 2016032 44 2015988 1% /var/run tmpfs 2016032 0 2016032 0% /var/lock tmpfs 2016032 0 2016032 0% /dev/shm tmpfs 2016032 44 2015988 1% /var/run tmpfs 2016032 0 2016032 0% /var/lock #VS:COMMAND:df:STOP #VS:FILE:/proc/loadavg:START 0.00 0.00 0.00 1/32 14543 #VS:FILE:/proc/loadavg:STOP #VS:FILE:/proc/meminfo:START MemTotal: 524288 kB MemFree: 450448 kB Buffers: 0 kB Cached: 0 kB SwapCached: 0 kB Active: 0 kB Inactive: 0 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 524288 kB LowFree: 450448 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB Mapped: 73840 kB Slab: 0 kB CommitLimit: 0 kB Committed_AS: 248704 kB PageTables: 0 kB VmallocTotal: 0 kB VmallocUsed: 0 kB VmallocChunk: 0 kB #VS:FILE:/proc/meminfo:STOP #VS:FILE:/proc/stat:START cpu 67188 0 26366 391669264 656686 0 0 cpu0 24700 0 10830 195807826 373309 0 0 cpu1 42488 0 15536 195861438 283376 0 0 intr 0 swap 0 0 ctxt 18105366807 btime 1171391058 processes 26501285 procs_running 1 procs_blocked 0 #VS:FILE:/proc/stat:STOP #VS:FILE:/proc/uptime:START 1962358.88 1577059.05 #VS:FILE:/proc/uptime:STOP """.lstrip("\n"); fh = StringIO.StringIO(data) sections = itertools.groupby(itertools.ifilter(lambda line: len(line) > 1, fh), lambda line: group(line)) for key, section in sections: for line in section: print key, line, -- Hope this helps, Steven -- http://mail.python.org/mailman/listinfo/python-list