Greg Lindstrom wrote: > Hello- > > I have a task which -- dare I say -- would be easy in <asbestos_undies> > Perl </asbestos_undies> but would rather do in Python (our primary > language at Novasys). I have a file with varying length records. All > but the first record, that is; it's always 107 bytes long. What I would > like to do is strip out all linefeeds from the file, read the character > in position 107 (the end of segment delimiter) and then replace all of > the end of segment characters with linefeeds, making a file where each > segment is on its own line. Currently, some vendors supply files with > linefeeds, others don't, and some split the file every 80 bytes. In > Perl I would operate on the file in place and be on my way. The files > can be quite large, so I'd rather not be making extra copies unless it's > absolutely essential/required. > > I turn to the collective wisdom/trickery of the list to point me in the > right direction. How can I perform the above task while keeping my sanity? > > Thanks! > --greg > -- > Greg Lindstrom 501 975.4859 > Computer Programmer [EMAIL PROTECTED] > NovaSys Health > Little Rock, Arkansas > > "We are the music makers, and we are the dreamers of dreams." W.W.
This should be fairly simple, but maybe not ;) # get the end of segment character # this is not optimal but should be a start f = open('yourrecord', 'r') eos = f.seek(107).read(1) r = f.read() f.close() r = r.replace('\r', '') r = r.replace('\n', '') r = r.replace(eos, '\n') f = open('yourrecord', 'w') f.write(r) f.close() hth, M.E.Farmer -- http://mail.python.org/mailman/listinfo/python-list