2012-03-26 6 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、 '%s'%s2 [0]) IndexError:リストインデックスが範囲外です。インデックスリストエラーGoogleのアプリエンジン

なぜですか?

答えて

1

明らかにs2は空です。つまり、rigaは空文字列です。 stringaには複数の'\n'が連続していますか? newfile.textをチェックしてください。おそらくそこに空の行があります。私は、空白行を削除するためのコントロールを追加し、最後の行がempty.Canです....

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

ありがとう:

がエラーを回避するには、次のような、if文でループ本体を包むことができますか?もちろん、 – user1281174

+0

。たとえば、 'for'ループの内容を' if if riga: 'ステートメントにラップすることができます。 –

+0

例を追加しました。 –

関連する問題