2017-06-16 3 views
0

.csvファイル内の各行をスキャンする必要がありますが、一度終了するとエラーが表示されます。.csvファイルの行線をスキャンするのに役立つ必要があります

def percentage(): 
    for line in csv_file: 
     temp = line.strip("\n") 

     measureType = temp.split(",")[5][1: -1] 

     if measureType == "PERCENT": 
      year = line.split(",")[1][1: -1] 
      percentage = line.split(",")[6][1: -2] 
      country = line.split(",")[0][1: -1] 

      if float(percentage) < 50: 
       output.addCountry(country, year, percentage) 

私は、ファイルをスキャンとして、それが最後に到達したら、それは私にエラーを与える:下の行のための

IndexError: list index out of range 

measureType = temp.split(",")[5][1: -1] 

私は非常に混乱しています私は何を修正しなければならないのか分からない。

+0

ファイルの最後の行は何ですか? – cosinepenguin

+0

このファイルの末尾に空の行があるようです。 – tdelaney

答えて

1

コサインペンギンの言っていることから、最後の行を見る必要があります。

エラーが発生する理由は、各コンマで行を分割して存在しないインデックスを取得しようとしているためです。

例:あなたが取得しようと最後のものよりも高いインデックスは、あなたがエラーIndexError: list index out of rangeを取得しますので、もしこの配列で

array = [0, 1, 2] 

は、3つのインデックスがあります。


最後の行に分割した後、必要なすべてのインデックスがあることを確認してください。

関連する問題