Modifying a textfile

konstantin konstantin.selivanov at gmail.com
Thu Sep 3 10:31:12 EDT 2009


On Sep 3, 2:21 pm, Olli Virta <llvi... at 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.
>
>  Thanks! OV

Straightforward generator version.

src = file('test_in.txt', 'r')
dst = file('test_out.txt', 'w')

def reader(src):
    count, lines = 0, ''
    for line in src:
        if count < 2:
            lines += line.strip()
            count += 1
        else:
            yield lines + line
            count, lines = 0, ''
    if lines:
        yield lines + '\n'

for lines in reader(src):
    dst.write(lines)



More information about the Python-list mailing list