PDA

View Full Version : input from a text file


dig
10-17-2013, 11:49 AM
Hi there
I'm designing an experiment in which I read input values off a text file. The text file has 5 columns, the first two containing numbers and the other 3 Greek words. I use the following code:
s = line.split()
myTrial = [float(s[0]),float(s[1]),s[2],s[3],s[4]]

But, I'm running into a problem. If I save the the text file in ANSI format then the numbers are read correctly but the words when displayed by vizard come up as scrambled characters. If I save the text file in UTF-8 then the text shows up correctly in Greek but then vizard gives me an error when reading the numbers (I know that the text shows up correctly because I tried a text file without the numbers and it works fine).

I don't know much about character encoding so I'm not sure if there is an easy solution to this problem. One option is to have numbers and text in separate text files but this defeats the purpose of my using an input file to simplify experiment design. Any ideas?
Thanks in advance!
marios

Jeff
10-17-2013, 05:15 PM
Try encoding to ascii before converting to float:
asciidata=s[0].encode("ascii","ignore")
number = float(asciidata)

dig
10-18-2013, 01:03 AM
Thanks for the reply Jeff. Unfortunately, it doesn't seem to work (unless I did something stupid of course). Here's my code:

for line in JRDfile:
s = line.split()
asciidata0=s[0].encode("ascii","ignore")
asciidata1=s[1].encode("ascii","ignore")
thisTrial = [float(asciidata0),float(asciidata1),s[2],s[3],s[4]]
JRDTrials.append(thisTrial)

And here's the error message I get:

Traceback (most recent call last):
File "<string>", line 11, in ?
File "Anthi_JRD.py", line 41, in ?
asciidata0=s[0].encode("ascii","ignore")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)

Note the the text file I'm trying to read from is in UTF-8 format.
Cheers,
marios

dig
10-18-2013, 01:06 AM
Just to clarify that indentation in the for loop went away when I copied-pasted from my script. So, there's no problem there.

Jeff
10-18-2013, 09:36 AM
That code worked for me in Vizard 4 (python 2.7) but produced the same error in Vizard 3 (python 2.4). Are you using Vizard 4?

dig
10-20-2013, 01:20 AM
Hi Jeff, I tried it with Vizard 3 at home and got the error message). I have Vizard 4 at the lab, I will try it there on Monday. Thanks!