Wert einer Zelle in einer .csv auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Flex-K
User
Beiträge: 5
Registriert: Mittwoch 5. Juni 2013, 16:38

Hallo zusammen,
ich bin noch ein ziemlicher Neuling was Python angeht.
Ich muss aus einer (relativ großen) .csv Datei die Werte einiger Zellen auslesen.
Leider bekomme ich es nicht hin eine einzelne Zelle aufzurufen,
ich bekomme entweder die ganze Zeile oder alle werte aus einer bestimmten Spalte zurück.
Ich möchte allerdings z.B. den Wert aus der Zelle in Zeile 13 Spalte 2 in eine Variable übernehmen.
Wie ist das möglich?
Ich habe schon viel gegoogelt aber nichts passendes gefunden.

Danke für eure Hilfe schon im Vorraus
BlackJack

@Flex-K: Wenn Du entweder eine Zeile oder eine Spalte ansprechen kannst, sollte es doch kein grösseres Problem sein in der Zeile oder Spalte die Zelle abzufragen. Wo ist denn da Dein konkretes Problem?
Flex-K
User
Beiträge: 5
Registriert: Mittwoch 5. Juni 2013, 16:38

Wie gesagt ich bin Neuling, ich habe schon einiges probiert hatte aber bisher keinen erfolg.
Ich habe auch keine ideen mehr was ich noch machen könnte.
Es wäre nett, wenn du mir den code posten könntest, sollte ja nicht sehr viel sein.

Danke schonmal im Vorraus.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Flex-K: Was hast Du bisher versucht? Poste doch mal Deinen Code.
Flex-K
User
Beiträge: 5
Registriert: Mittwoch 5. Juni 2013, 16:38

Also ich habe es mal so versucht, erschiehn mir irgendwie am sinvollsten.

Code: Alles auswählen

import csv
reader = csv.reader ('file.csv' , 'rb'),  delimiter=';'
for row in reader:
      for col in reader:
Das ist mein Ansatz, jetzt suche ich eine möglichkeit um erstens den Bereich festzulegen also
Row = 13 und col=2 und zweitens so etwas wie

Variable1= current

Wie gesagt die gesamte datei ausgeben bzw nur eine spalte habe ich schon geschafft, zur einen einzelnen Wert eben nicht.

In java würde das ja zb durch reader.getCurrent() funktionieren.
Gibt es so etwas in Phyton oder ist mein Ansatz völlig falsch?
BlackJack

@Flex-K: Arbeite mal ein Python-Grundlagentutorial durch und probiere Quelltext den Du hier zeigst auch mal aus. Der da läuft so überhaupt nicht. Wenn Du Listen verstanden hast, dann sollte das Problem ganz einfach lösbar sein.
Flex-K
User
Beiträge: 5
Registriert: Mittwoch 5. Juni 2013, 16:38

Ich sehe gerade das ich da die inkremente vergessen hab, ich hab das vom handy aus schnell geschrieben.
Ich steh da echt aufm Schlauch.
Es wäre wirklich nett wenn du mir die Lösung meines Problems senden könntest, weil ich gerade auch nicht viel Zeit habe und das "Projekt" möglichst schnell fertig werden sollte.
Dann könnte ich das ganze auch über die Lösung verstehen
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Zugriff auf Elemente von Listen in Listen:

Code: Alles auswählen

>>> data = [[1,2,3],[4,6,7]]
>>> data[1][2]
7
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Die Vorstufe zum Posting von Sirius3:

Code: Alles auswählen

import csv

with open('file.csv', 'rb') as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    data = list(reader)

print data
Flex-K
User
Beiträge: 5
Registriert: Mittwoch 5. Juni 2013, 16:38

Danke für deine Hilfe, leider habe ich deinen post zu spät gelesen.
Ich habe es jetzt schon selbst hinbekommen und zwar mit hilfe von linecache.getline und data.split(";")
Trozdem danke für die hilfe.

Flex-K
BlackJack

@Flex-K: Das `linecache`-Modul würde ich nicht verwenden. Das macht mehr als gewollt ist, zum Beispiel eine Datei im Modulpfad suchen. Ausserdem sammeln sich Daten im Cache an und man dort nicht gezielt *die eigenen* Daten löschen wenn man sie nicht mehr braucht.
Antworten