[Python-de] IndexError: list index out of range

Jürgen 'phoeniks' Jakel python at phoeniks.de
Sat Jan 5 17:42:16 EST 2002


Hallo erstmal,

schön hier eine deutsche Python-Mailingliste gefunden zu haben.. nun gleich mal zu meiner Frage:

Ich habe ein Script das eine Log-Datei zeilenweise liest und an den leerzeichen zwischen den Werten in eine Liste trennt. Anschließend wird das ganze in die mySQL Datenbank geschrieben.

Das Logfile sieht ungefähr so aus:

1009212225 6 217.172.169.244 3306 217.172.180.30 43783 960 eth0 unknown
1009212225 6 217.172.180.30 43720 217.172.169.244 3306 161 eth0 unknown
1009212225 6 217.172.169.244 3306 217.172.180.30 43720 104 eth0 unknown
1009212225 17 217.172.180.22 8778 255.255.255.255 9777 77 eth0 unknown
1009212225 6 217.2.54.12 64599 217.172.180.30 22 20652 eth0 unknown
1009212225 6 217.172.180.30 22 217.2.54.12 64599 73600 eth0 unknown

Das ganze funktioniert auch prima. Ich schreib jetzt einfach mal den Code meines Scriptes hier rein...

import MySQLdb
conn = MySQLdb.connect(db='logging', host='localhost', user='root', passwd='root')
curs = conn.cursor()
import string
f=open('net-acct.log', 'r')
datei=1
while(datei):
    datei=f.readline()
    array=string.split(datei)
    sql="INSERT INTO raw_data (ip_in, port_in, ip_out, port_out) VALUES ('"+array[2]+"', '"+array[3]+"', '"+array[4]+"', '"+array[5]+"')"
    curs.execute(sql)
f.close()
curs.close()
conn.close()

---------------------

Wenn ich das Script ausführe dann scheint es zwar zu funktionieren (er schreibt alle Zeilen in die Datenbank) allerdings bekomme ich immer eine Fehlermeldung am Ende:

Traceback (most recent call last):
  File "<string>", line 1, in ?
  File "C:\Programme\Python21\arhack.py", line 10, in ?
    sql="INSERT INTO raw_data (ip_in, port_in, ip_out, port_out) VALUES ('"+array[2]+"', '"+array[3]+"', '"+array[4]+"', '"+array[5]+"')"
IndexError: list index out of range

Nun meine Frage - was mache ich falsch? Gibt es eine Begrenzung für Listen? wobei das ja nix machen sollte weil meine Liste ja nur 7 "spalten" hat..

Schönen Abend noch

phoeniks

P.S. Falls ich irgendwelche Regeln für Mailinglisten gebrochen oder hier jemand verärgert haben sollte, bitte verzeiht es mir - ist meine erste Mailingliste - sagt mir einfach was ich anders machen soll.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://starship.python.net/pipermail/python-de/attachments/20020105/e4387eb4/attachment.htm


More information about the Python-de mailing list