how to read specific number of floats from file in python?
- by sahel
I am reading a text file from the web. The file starts with some header lines containing the number of data points, followed the actual vertices (3 coordinates each). The file looks like:
# comment
HEADER TEXT
POINTS 6 float
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9
1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9
POLYGONS
the line starting with the word POINTS contains the number of vertices (in this case we have 3 vertices per line, but that could change)
This is how I am reading it right now:
ur=urlopen("http://.../file.dat")
j=0
contents = []
while 1:
line = ur.readline()
if not line:
break
else:
line=line.lower()
if 'points' in line :
myline=line.strip()
word=myline.split()
node_number=int(word[1])
node_type=word[2]
while 'polygons' not in line :
line = ur.readline()
line=line.lower()
myline=line.split()
i=0
while(i<len(myline)):
contents[j]=float(myline[i])
i=i+1
j=j+1
How can I read a specified number of floats instead of reading line by line as strings and converting to floating numbers?
Instead of ur.readline() I want to read the specified number of elements in the file
Any suggestion is welcome..