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

Reply via email to