On Thu, Sep 3, 2009 at 3:21 AM, Olli Virta<llvi...@gmail.com> wrote: > Hi! > > So I got this big textfile. It's full of data from a database. About > 150 or > more rows or lines in a textfile. > There's three first rows that belong to the same subject. And then > next > three rows belong to another subject and so on, to the end of the > file. > > What I need to do, is put the three rows that goes together and belong > to > certain subject, on a one line in the output textfile. And the next > three > rows again on a one new line. And that goes with the rest of the data > to > the end of the new file. > > Can't figure out a working loop structure to handle this.
#completely untested from itertools import izip_longest #from itertools recipes def grouper(n, iterable, fillvalue=None): "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx" args = [iter(iterable)] * n return izip_longest(fillvalue=fillvalue, *args) output = file("output_file.whatever", 'w') f = file("input_file.whatever", 'r') for triple in grouper(3, f): triple = triple.replace('\n', '') output.write(triple) output.write('\n') Cheers, Chris -- http://blog.rebertia.com -- http://mail.python.org/mailman/listinfo/python-list