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 - [email protected]
> > > > > > > > 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 - [email protected]
> > > > > > > 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 - [email protected]
> > 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 - [email protected]
http://mail.python.org/mailman/listinfo/tutor