Nope, it's not that. You can just change your map(int, foo) calls to use float. (But that said, you don't need map, as you're operating on one item at a time.)
Hmm.... try changing the following. for x in data: y = str(x).rstrip('\t\n') #This will remove any stray tabs or newlines on the end. ( temp11, temp22, pyra11, pyra22, voltage11, current11) = y.split('\t') (Also, you could probably rewrite like this) temp1, temp2, pyra1, pyra2, voltage, current = [],[],[],[],[],[] data_file = open(os.path.normpath(self.TextFile.GetValue()), 'r') for x in data: y = str(x).rstrip('\t\n') ( temp11, temp22, pyra11, pyra22, voltage11, current11) = y.split('\t') temp1.append(float(temp11)) temp2.append(float(temp22)) pyra1.append(float(pyra11)) pyra2.append(float(pyra22)) voltage.append(float(voltage11)) current.append(float(current11)) On Wed, 30 Mar 2005 17:29:38 +0800, jrlen balane <[EMAIL PROTECTED]> wrote: > sir Liam, > > I think i know now what the problem is, i'm trying to read a float and > not integer. in this case how should i do this > > ======================================================== > Line: 1.313725 3.274510 4.352941 0.039216 0.019608 > 0.019608 > > 7 items found > > > On Wed, 30 Mar 2005 21:21:39 +1200, Liam Clarke <[EMAIL PROTECTED]> wrote: > > >print temp1[x], temp2[x] > > > > This won't work. > > > > >>> fob = [] > > >>> gab = ["fooBar","Baz","aBBa"] > > >>> for line in gab: > > ... print line, > > ... x = line.replace('B', 'X') > > ... print x > > ... fob.append(x) > > ... print fob[line] > > ... > > fooBar fooXar > > Traceback (most recent call last): > > File "<interactive input>", line 6, in ? > > TypeError: list indices must be integers > > > > >ValueError: unpack list of wrong size > > What should I do? > > > > Catch the exception - > > > > try: > > (temp11, temp22, pyra11, pyra22, voltage11, current11) = y.split('\t') > > except ValueError: > > print "Line:", y > > print len(y.split('\t')), "items found" > > > > And see what's going wrong. You get a ValueError like that one like so - > > >>> x = ["1,2,3", > > "4,5,6", > > "7,8"] > > >>> for af in x: > > ... (a,b,c) = af.split(',') > > ... print a,b,c > > ... > > 1 2 3 > > 4 5 6 > > Traceback (most recent call last): > > File "<interactive input>", line 2, in ? > > ValueError: unpack list of wrong size > > > > See, it's trying to get 3 items from each split, but the last one only > > gives 2 items. > > > > So, print the offending line, I'm guessing it's a blank "\n" or "\t" line. > > > > Regards, > > > > Liam Clarke > > > > > > On Wed, 30 Mar 2005 17:08:07 +0800, jrlen balane <[EMAIL PROTECTED]> wrote: > > > after running this in IDLE: > > > > > > import sys > > > import serial > > > import sys, os > > > import serial > > > import string > > > import time > > > from struct import * > > > > > > temp1 = [] > > > temp2 = [] > > > pyra1 = [] > > > pyra2 = [] > > > voltage = [] > > > current = [] > > > > > > data_file = open('C:/Documents and Settings/nyer/My > > > Documents/Info/info2/200503300858.txt', 'r') > > > data = data_file.readlines() > > > for x in data: > > > y = str(x) > > > (temp11, temp22, pyra11, pyra22, voltage11, current11) = y.split('\t') > > > temp11Integer = map(int, temp11) > > > temp22Integer = map(int, temp22) > > > pyra11Integer = map(int, pyra11) > > > pyra22Integer = map(int, pyra22) > > > voltage11Integer = map(int, voltage11) > > > current11Integer = map(int, current11) > > > > > > print temp11Integer, temp22Integer, pyra11Integer, pyra22Integer, > > > voltage11Integer, current11Integer > > > > > > temp1.append(temp11Integer) > > > temp2.append(temp22Integer) > > > pyra1.append(pyra11Integer) > > > pyra2.append(pyra22Integer) > > > voltage.append(voltage11Integer) > > > current.append(current11Integer) > > > > > > print temp1[x], temp2[x] > > > > > > an error: > > > Traceback (most recent call last): > > > File "C:/Python23/practices/read.py", line 21, in -toplevel- > > > (temp11, temp22, pyra11, pyra22, voltage11, current11) = y.split('\t') > > > ValueError: unpack list of wrong size > > > > > > What should i do?? > > > > > > > > > On Wed, 30 Mar 2005 00:29:05 -0800, jrlen balane <[EMAIL PROTECTED]> > > > wrote: > > > > so basically, i'll just do this to append the data to the list: > > > > > > > > temp1[]=0 > > > > temp2[]=0 > > > > pyra1[] =0 > > > > pyra2[] =0 > > > > voltage[] =0 > > > > current[] =0 > > > > > > > > data_file = open(os.path.normpath(self.TextFile.GetValue()), 'r') > > > > > > > > for x in data: > > > > y = str(x) > > > > ( temp11, temp22, pyra11, pyra22, voltage11, current11) = y.split('\t') > > > > temp11Integer = map(int, temp11) > > > > temp22Integer = map(int, temp22) > > > > pyra11Integer = map(int, pyra11) > > > > pyra22Integer = map(int, pyra22) > > > > voltage11Integer = map(int, voltage11) > > > > current11Integer = map(int, current11) > > > > > > > > temp1.append(temp11Integer) > > > > temp2.append(temp22Integer) > > > > pyra1.append(pyra11Integer) > > > > pyra2.append(pyra22Integer) > > > > voltage.append(voltage11Integer) > > > > current.append(current11Integer) > > > > > > > > > > > > On Wed, 30 Mar 2005 20:07:42 +1200, Liam Clarke <[EMAIL PROTECTED]> > > > > wrote: > > > > > So... you need those tabs? If you don't need them, go like this - > > > > > > > > > > > data_file = open(os.path.normpath(self.TextFile.GetValue()), 'r') > > > > > for x in data: > > > > > y = str(x) > > > > > ( temp11, temp22, pyra11, pyra22, voltage11, current1) = > > > > > y.split('\t') > > > > > > > > > > And that should be all your values, separated in string format. > > > > > > > > > > > > > > > On Tue, 29 Mar 2005 20:56:16 -0800, jrlen balane <[EMAIL PROTECTED]> > > > > > wrote: > > > > > > how should i modify this data reader: > > > > > > (assumes that there is only one entry per line followed by '\n') > > > > > > > > > > > > > > > > > data = data_file.readlines() > > > > > > > > > > > > self.irradianceStrings = map(str, data) > > > > > > self.irradianceIntegers = map(int, data) > > > > > > self.IrradianceExecute.SetValue(''.join(self.irradianceStrings)) > > > > > > > > > > > > so that i can read the text file created by this: > > > > > > > > > > > > self.filename = "%s\%s.txt" > > > > > > %(os.path.normpath(self.SaveFolder.GetValue()),time.strftime("%Y%m%d%H%M")) > > > > > > > > > > > > self.table_file = open(self.filename,"a") > > > > > > self.table_file.write('%f\t'%self.temp11) > > > > > > self.table_file.write('%f\t'%self.temp22) > > > > > > self.table_file.write('%f\t'%self.pyra11) > > > > > > self.table_file.write('%f\t'%self.pyra22) > > > > > > self.table_file.write('%f\t'%self.voltage11) > > > > > > self.table_file.write('%f\t'%self.current11) > > > > > > self.table_file.write('\n') > > > > > > self.table_file.close() > > > > > > > > > > > > > > > > > > On Tue, 15 Mar 2005 17:05:46 +1300, Liam Clarke <[EMAIL PROTECTED]> > > > > > > wrote: > > > > > > > Whoops, golden rule - "Never post untested code" > > > > > > > Sorry. > > > > > > > > > > > > > > > > > > > > > On Mon, 14 Mar 2005 21:05:44 -0500, Kent Johnson <[EMAIL > > > > > > > PROTECTED]> wrote: > > > > > > > > jrlen balane wrote: > > > > > > > > > ok, i've done what sir Kent just said, my fault... > > > > > > > > > > > > > > > > > > but an error still occurs: > > > > > > > > > Traceback (most recent call last): > > > > > > > > > File "C:\Python23\practices\opentxtprintlngnew.py", line > > > > > > > > > 18, in -toplevel- > > > > > > > > > print process(data) > > > > > > > > > File "C:\Python23\practices\opentxtprintlngnew.py", line > > > > > > > > > 10, in process > > > > > > > > > tempLine = int(line) > > > > > > > > > ValueError: invalid literal for int(): abc > > > > > > > > > > > > > > > > > > isn't this the job of : > > > > > > > > > > > > > > > > > > except TypeError: > > > > > > > > > print "Non numeric character in line", line > > > > > > > > > continue #Breaks, and starts with next line > > > > > > > > > > > > > > > > Yes, only it should be ValueError instead of TypeError. You can > > > > > > > > check this interactively: > > > > > > > > >>> int('foo') > > > > > > > > Traceback (most recent call last): > > > > > > > > File "<stdin>", line 1, in ? > > > > > > > > ValueError: invalid literal for int(): foo > > > > > > > > > > > > > > > > Kent > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > > Tutor maillist - Tutor@python.org > > > > > > > > http://mail.python.org/mailman/listinfo/tutor > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > 'There is only one basic human right, and that is to do as you > > > > > > > damn well please. > > > > > > > And with it comes the only basic human duty, to take the > > > > > > > consequences. > > > > > > > _______________________________________________ > > > > > > > Tutor maillist - Tutor@python.org > > > > > > > http://mail.python.org/mailman/listinfo/tutor > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > 'There is only one basic human right, and that is to do as you damn > > > > > well please. > > > > > And with it comes the only basic human duty, to take the consequences. > > > > > > > > > > > > > > > > -- > > 'There is only one basic human right, and that is to do as you damn well > > please. > > And with it comes the only basic human duty, to take the consequences. > > _______________________________________________ > > Tutor maillist - Tutor@python.org > > http://mail.python.org/mailman/listinfo/tutor > > > -- 'There is only one basic human right, and that is to do as you damn well please. And with it comes the only basic human duty, to take the consequences. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor