Parsing by Line Data
python1
python1 at spamless.net
Thu Jun 17 18:43:47 EDT 2004
Bill Dandreta wrote:
> python1 wrote:
>
>> ...lines in a file, for example:
>>
>> 01A\n
>> 02B\n
>> 01A\n
>> 02B\n
>> 02C\n
>> 01A\n
>> 02B\n
>> .
>> .
>> .
>>
>> The lines beginning with '01' are the 'header' records, whereas the
>> lines beginning with '02' are detail. There can be several detail
>> lines to a header.
>>
>> I'm looking for a way to put the '01' and subsequent '02' line data
>> into one list, and breaking into another list when the next '01'
>> record is found.
>>
>> How would you do this? I'm used to using 'readlines()' to pull the
>> file data line by line, but in this case, determining the break-point
>> will need to be done by reading the '01' from the line ahead. Would
>> you need to read the whole file into a string and use a regex to break
>> where a '\n01' is found?
>
>
> First let me prface my remarks by saying I am not much of a programmer
> so this may not be the best way to solve this but I would use a
> dictionary someting like this (untested):
>
> myinput = open(myfile,'r')
> lines = myinput.readlines()
> myinput.close()
>
> mydict = {}
> index = -1
>
> for l in lines:
> if l[0:2] == '01'
> counter = 0
> index += 1
> mydict[(index,counter)] = l[2:]
> else:
> mydict[(index,counter)] = l[2:]
> counter += 1
>
> You can easy extract the data with a nested loop.
>
> Bill
Thanks Bill. Will use this script in place of Eddie's if python is sub
2.2 on our Aix box.
Thanks again.
More information about the Python-list
mailing list