ich habe bisher beruflich in MATLAB programmiert und möchte mich in Zukunft mit Python breiter aufstellen, dafür mache ich gerade einen Onlinekurs. An einer Stelle habe ich anscheinend aber noch nicht die richtige Python-Denke:
Ich benutze ein Modul oder einen Befehl, z.B. das CSV-Modul, und erhalte eine Variable/Instanz zurück. z.B.:
import csv
with open('../data/names.csv', newline='') as csvfile:
....namelist = csv.reader(csvfile, delimiter=',', quotechar='|')
Jetzt habe ich in "namelist" mein Ergebnis. Aber was ist das für ein Format? Wie finde ich raus, wie ich das ansprechen kann? Also ich will zum Beispiel den ersten Namen auslesen, wohl wissend, dass da noch mehr Informationen als nur Namen drin sein müssen. In Matlab könnte ich im Workspace schauen und sehen, aha, ich habe z.B. ein zweidimensionales Array von Strings. In Jupyter versuche ich sowas rauszukriegen über
print(namelist)
<_csv.reader object at 0x0000023AC54175E0>
Okay, es ist offensichtlich ein csv.reader-Objekt, klar. Das sagt mir aber nichts darüber, was in einem csv.reader -Objekt drin ist oder was ich damit machen kann. Nächster Versuch:
print(namelist[1])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-be25cc4ac09f> in <module>
----> 1 print(namelist[1])
TypeError: '_csv.reader' object is not subscriptable
Okay, Indizes darf ich nicht verwenden. Aber was darf ich denn?
type(namelist)
_csv.reader
Ja, das wusste ich schon. Ein bisschen mehr Info wäre nett gewesen...

Ich weiß mittlerweile durch Googlen/Musterlösung, dass der folgende Code funktioniert:
for row in namelist:
....print(row[1])
Also ist es wohl eine Art Set von Lists oder so?
namelist.clear()
AttributeError: '_csv.reader' object has no attribute 'clear'
Also ein richtiges Set ist es auch nicht, sonst hätte es die .clear--Methode...
Wie finde ich raus was mit dem Objekt/der Klasse geht ohne ewig rumzuprobieren oder jedes Mal zu googlen und hoffen, dass es ein häufiges Problem ist? Und vor allem: Welche Methoden sind in csv.reader (oder anderswo, ist ein Beispiel) verfügbar, was machen sie und wie benutze ich sie? Hier muss es doch irgendwas geben in Richtung
print(csv.reader.structure)
print(csv.reader.methods(all))
Oder wird sowas in Python anders gemacht? Wie geht Ihr in der Situation vor? Es geht mit nicht speziell um csv.reader, sondern allgemein. Z.B. Chef meldet sich, Kollege ist krank, kannst Du mal bitte den Bug fixen? Und ich hab die Klasse noch nie gesehen und online kennt es auch keiner, weil das Modul vom krankgeschriebenen Kollegen programmiert wurde.
Danke schonmal für Eure Tipps!
