Tommy Grav a écrit : > Hi list, > > this is somewhat of a newbie question that has irritated me for a > while. > I have a file test.txt: > > 0.3434 0.5322 0.3345 > 1.3435 2.3345 5.3433 > > and this script > lines = open("test.txt","r").readlines() > for line in lines: > (xin,yin,zin) = line.split() > x = float(xin) > y = float(yin) > z = float(zin) > > Is there a way to go from line.split() to x,y,z as floats without > converting > each variable individually?
either map() or a list comprehension import sys fname = "test.txt" lines = open(fname,"r") for numline, line in enumerate(lines): try: x, y, z = map(float, line.split()) # or: # x, y, z = [float(item) for item in line.split()] except (ValueError, IndexError), e: err = "Invalid data format in %s line %s : "%s" (%s)" \ % (fname, numline, line, e) print >> sys.stderr, err sys.exit(1) else: # do whatever appropriate here - anyway HTH -- http://mail.python.org/mailman/listinfo/python-list