How to read ansic file into a pre-defined class?

Tim Roberts timr at probo.com
Sat Jan 8 21:51:38 EST 2011


Ying Zu <zuying at gmail.com> wrote:
>
>How to read ansic file into a pre-defined class?

This is not an "ansic" file.  It's just a plain old data file.

>I have a series of files written in the following format,
>
>2         # number of classes
>100       # number of items for the first class object 
>0   foo
>1   foo
>...
>99  foo
>150       # number of items for the second class object 
>0   bar
>1   bar
>...
>149 bar
>
>ultimately I want to read the file to two *structs* (sorry for my C
>jargon, just started playing with Python), with attributes
>number_of_items and data_array.
>
>I wrote a simply code to read and split each line into a list, then
>try to tell the meaning of each line by the number of elements of
>each line list and the its position in the file. But it is
>definitely not the way Python should be used.

You don't really need to count the number of elements.  The file tells you
how many of each to expect.  This works:

   numclasses = int(f.next().strip())
   classlist = []
   for i in range(numclasses):
      numitems = int(f.next().strip())
      classlist.append(
          [f.next().strip().split() for j in range(numitems)]
      )

Then len(classlist) tells you how many classes.  len(classlist[0]) tells
you how many items in the first class.
-- 
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.



More information about the Python-list mailing list