Me again. Python is telling me that there are 13 items in the row count in
addition to row[0] where there should be only 12. I don't see the error and
there is no blank space at the end of the row.

  I've attached the script (datacon.py) that worked before, and here's a
very short data set that throws the error:

Traceback (most recent call last):
  File "./datacon.py", line 32, in <module>
    if row[i] != '':
IndexError: list index out of range

Data:

::JC-2:JC-3:JC-3:MC-1:MC-2:BC-2:BC-3:ITSN:SC:SC-100:GDSP-10:GD-1
::2008-06-26:2008-05-29:2008-06-26:2008-06-26:2008-06-26:2008-06-26:2008-05-29:2008-06-23:2008-06-26:2008-06-23:2008-06-23:2008-06-26
pH:8.00:8.00:7.50:8.00:7.90:8.00:7.90:8.40:7.50:8.00:8.00:8.10

  I've printed stubs and found that the list index is looking for one too
many items, but I don't see where it's getting the incorrect count. Please
point out what's incompatible with the script or data file.

TIA,

Rich


-------------- next part --------------
#!/usr/bin/env python

import sys,csv

filename = sys.argv[1]
try:
 infile = open(filename, 'r')
except:
 print "Can't open ", filename,"!"
 sys.exit(1)
indata = csv.reader(infile, delimiter=':')

loc = indata.next()
sampdate = indata.next()

# check for mis-match in number of columns
assert len(loc) == len(sampdate)

outfile = open('out.csv', 'w')
outdata = csv.writer(outfile, delimiter = ':', lineterminator = '\n')

# The next rows are our parameters.
for row in indata:
 # iterate through each column for the particular locations
 for i, location in enumerate(loc):
   # ignore the first column, which contains the parameter name
   if i == 0:
     continue
# Write the location, the date for this column, the parameter name
   # (which is the first column in this row), and the value.
   if row[i] != '':
     float(row[i])
     outdata.writerow([location, sampdate[i], row[0], float(row[i])])
   else:
     row[i] = ''
     outdata.writerow([location, sampdate[i], row[0]])

infile.close()
outfile.close()
_______________________________________________
Portland mailing list
[email protected]
http://mail.python.org/mailman/listinfo/portland

Reply via email to