python dummie schrieb:
> Ich möchte mit Python eine CSV-Datei lesen (in der 2. Zeile ist
> das
> letzte Feld absichtlich leer)
>
> bank.csvMueller Hans;DE120300001234567890;88.51;Eier und Milch
> Schmidt Klaus;DE773501100987654321;1203.56;
Wo kommt dann unten "Kaese und Butter" her?
>with open('bank.csv', 'rb') as csvfile:
> datei = csv.reader(csvfile, delimiter=';')
'r' und nicht 'rb' oder warum willst Du binär lesen?
> ['Mueller Hans', 'DE120300001234567890', '88.51', 'Eier und Milch']
> ['Schmidt Klaus', 'DE773501100987654321', '1203.56', 'Kaese und Butter']
>
> Wie kann ich jetzt auf das 3. Feld
row[2]
> print row[0:1] liefert ['Schmidt Klaus']
> print row[1:2] liefert ['DE773501100987654321']
> print row[0:3] liefert ['Schmidt Klaus', 'DE773501100987654321']
> alles nur aus der letzten Zeile
> Wie kann ich jetzt auf das 3. Feld in der 1. Zeile zugreifen (88.51)?
1 | import csv
|
2 |
|
3 | with open('bank.csv', 'r') as csvfile:
|
4 | datei = csv.reader(csvfile, delimiter=';')
|
5 | print(list(datei)[0][2])
|
Erst machen wir mit list() aus dem iterator (welcher nur vorwärts lesen
kann) eine echte Liste im Speicher welche man wahlfrei indizieren kann,
dann haben wir also eine Liste von Zeilen oder eine Liste von Listen von
Strings und dann nehmen wir von dieser zweidimensionalen Struktur das
zweite Element des nullten Elements (zweite Spalte der nullten Zeile).
1 | --($)-- python3 "unbenannt.py"
|
2 | 88.51
|
Mission erfüllt.