Alan Gauld wrote:
<div class="moz-text-flowed" style="font-family: -moz-fixed">
"Olli Virta" <llvi...@gmail.com> wrote

I have a textfile (job.txt) that needs modifying. The structure of this file
is like this:

AAA1...
BBB1...
CCC1...
AAA2...
BBB2...
CCC2...
etc...
Question is how can I turn this all to a textfile (done.txt) that is suppose
to look like this:

AAA1...BBB1...CCC1...
AAA2...BBB2...CCC2...

Lots of ways to do it. The simplest is to read the variables line by line,
so, in pseudo code:

while infile not empty
    a = f.readline()
    b = f.readline()
    c = f.readline()
    outfile.write("%s,%s,%s" % (a,b,c) )

If the data is manageable you could read it all into a list then use list
slicing to achieve the same

data = infile.readlines()
for start in range(len(data))[::3]:  # get every third index
    outfile.write("%s\t%s\t%s" % tuple(data[start :start+3]) )

I suspect you can do even clever things with itertools using groupby
and such, but I'm no itertools expert - its on my list of things to learn... :-)

HTH,

Between ellipses and etc., you've managed to confuse everyone with the actual format of your file.

But Alan's response is the closest so far to what I think you might have had in mind. The thing he seems to be missing is the treatment of newlines.

Basically your output file is just like your input file except that some newlines have been removed. So the only question is what's the pattern of removal. You might have a constant number of input lines per group (e.g. three for your present example). If that's the case, you want to strip off all newlines except those in front of a multiple of (3). So loop through the data array, using rstrip() on all the lines except 2, 5, 8, ... You can use the modulo operator (%) to decide whether an index has the right form.

Alternatively, you might be saying you want a newline whenever the prefix of the line changes. So loop through the lines, doing the rstrip() unless the next line begins the same as the present one.

DaveA






_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to