2012-03-26 4 views
-1
file_name = files.blobstore.create(mime_type='application/ms-excel', _blobinfo_uploaded_filename='sample.xls') 
    wbk = xlwt.Workbook() 
    sheet = wbk.add_sheet('Sheet 1') 
    stringa = str(newfile.text) 
    s3 = stringa.split('\n') 
    i=1 
    for riga in s3: 
     s2=riga.split() 
     try: 
      x = float(s2[0]) 
      y = float(s2[1]) 
      sheet.write(i, 1, '%g' %x) 
      sheet.write(i, 2, '%14.3e' %y) 
     except: 
      sheet.write(i, 1, '%s' %s2[0]) 
      sheet.write(i, 2, '%s' %s2[1]) 
     i=i+1 

Файл "/base/data/home/apps/s~marco-busso/1.357756583016056739/helloworld.py", строка 140, в посте sheet.write (я, 1, '% s'% s2 [0]) IndexError: список index out of rangeиндекса ошибка списка Google App Engine

Почему?

ответ

1

По-видимому s2 пуст, что означает riga - пустая строка. Есть stringa имеют более одного '\n' в строке? Проверьте newfile.text, может быть, там пустая строка.

Чтобы предотвратить ошибку, вы можете обернуть тело цикла в if заявления, такие как:

for riga in s3: 
    if riga: 
     s2=riga.split() 
     try: 
      x = float(s2[0]) 
      y = float(s2[1]) 
      sheet.write(i, 1, '%g' %x) 
      sheet.write(i, 2, '%14.3e' %y) 
     except: 
      sheet.write(i, 1, '%s' %s2[0]) 
      sheet.write(i, 2, '%s' %s2[1]) 
     i=i+1 
+0

Спасибо .... последняя строка empty.Can добавить элементы управления, чтобы удалить пустую строку? – user1281174

+0

Конечно. Например, вы можете обернуть содержимое цикла 'for' в оператор' if riga: '. –

+0

Я добавил пример. –

Смежные вопросы