2017-02-10 6 views
-4

私は最終的にすべての音楽を混乱させるように音楽データベースを作成しています。IndexError:データベースのpythonで範囲外のインデックスのインデックスを表示します

私のプログラムは動作しますが(正しい答えを返します)、まだエラーが表示されます。お手伝いできますか?

コードは次のとおりです。

import csv 

M_TYPE = 0 
M_ARTIST = 1 
M_TITLE = 2 
M_YEAR = 3 

def read_music(): 
    with open('MuziekDatabaseThuis.txt', 'r') as csvfile: 
     musicreader = csv.reader(csvfile, delimiter=',', quotechar='|') 
     for music in musicreader: 
      #print(', '.join(music)) 
      if music[M_TYPE] == 'CT' and music[M_ARTIST] == 'Bob Marley & The Wailers': 
       print(music) 

def music_add(): 
    with open('MuziekDatabaseThuis.txt', 'a') as csvfile: 
     musicadder = csv.writer(csvfile, delimiter=',', 
           quotechar='|') 
     musicadder.writerow(['PC', 'Natans PC', 'Coole PC', '2014']) 



def main(): 
    read_music() 

if __name__ == '__main__': 
    main() 

私は今music_add()を使用して計画しておりません。単なるテストに過ぎませんでした。

エラーは次のとおりです。

['CT', 'Bob Marley & The Wailers', 'No Woman No Cry', '1989'] 
Traceback (most recent call last): 

    File "G:\Python\Database Kast Thuis\Program.py", line 38, in <module> 
    main() 
    File "G:\Python\Database Kast Thuis\Program.py", line 35, in main 
    read_music() 
    File "G:\Python\Database Kast Thuis\Program.py", line 23, in read_music 
    if music[M_TYPE] == 'CT' and music[M_ARTIST] == 'Bob Marley & The Wailers': 
IndexError: list index out of range 

私はアルバムが存在しません知っているが、私はただのプレースホルダを必要としていました。

EDIT:コードをペーストビン

+0

「MuziekDatabaseThuis.txt」の形式はCSV形式でどのように読み込まれますか? –

+2

ここにコードを表示してください。 –

+1

行の1つに少なくとも2つの要素がありません。 – postoronnim

答えて

1

オールライトには、ここではなく貼り付けられました。私の数学の先生が問題を見つけました。私はテキスト文書に空の行を残しました。私は後でスクリプトを避けるエラーを投稿します。

ナタン

EDIT:追加されましたエラー回避スクリプト:

あなたがデータベースのための私のスクリプトを使用する場合: はトップオフコードにM_LENと呼ばれる新しい変数を追加し、どのように多くのそれを作ります引数はtxtドキュメントで与えられます。 (だから、私の場合は4) 次にあなたがもし現在の内側の印刷コマンドを削除して置き換えます。

if len(music) != M_LEN: 
    next(csvfile, None) 
elif len(music) == M_LEN: 
    if music[M_TYPE] == 'CT' and music[M_ARTIST] == 'Bob Marley and The Wailers': 
     print(music) 

そしてofcourseのあなたは

....あなたが持っているもので(音楽)を交換する必要があります

Natan

+0

私にも空行問題があるようです。 –

関連する問題