On Tue, 29 Nov 2005 17:40:08 GMT, Thomas Liesner <[EMAIL PROTECTED]> wrote: [...] >This is the codesnippet i am using: Sorry, I made no comment on your actual code. Some follows. > >#!/usr/bin/python > >import string I'm not seeing the need for importing string
>inp = open("xyplan.nobreaks","r") inp = open("xyplan.nobreaks") # defaults to "r" >data = inp.read() >for words in data.split(): At this point words would have to be a group of three successive words, joined with a single space separator. So we can still use your loop and only print with newline on the last of every group of three. So we can use a counter to tell where in the cycle we are, e.g., combining read() and split() and enumerating the split sequence, (untested) for i, words in enumerate(inp.read().split()): if i%3 < 2: print words, # trailing comma makes a space separator if next print continues line output else: # do as before and print final word with newline > print words >inp.close() > >Any hints? Upgrade if you don't have 2.4 ;-) Then you can do a oneliner with a single print ;-) Set up the data file example: >>> open('xyplan.nobreaks','w').write("""\ ... 3905 ... 3009 ... 0000 ... 4508 ... f504 ... 0000 ... 3707 ... 5a07 ... 0000 ... """) Show it as is: >>> print '----\n%s----'%open('xyplan.nobreaks').read() ---- 3905 3009 0000 4508 f504 0000 3707 5a07 0000 ---- Now the one-liner, FWIW ;-) >>> print '\n'.join(' '.join(z) for it in [(ln.strip() for ln in >>> open('xyplan.nobreaks'))] for z in (zip(it, it, it) )) 3905 3009 0000 4508 f504 0000 3707 5a07 0000 Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list