Beim Lesen von CSV-Dateien sind manchmal die erste Zeile (oder mehrere) Header, die wir nicht in unsere Daten aufnehmen möchten.wie csv.reader-Header korrekt behandelt werden
Wenn ich brauche nicht die Daten aus dem Header ich next
kurz vor dem Leser zu erklären (wenn mehr als eine Zeile für Header verwendet wird, kann ich nächste mehrmals aufrufe):
with open('myfile.csv', 'rb') as f:
next(f) #skip first row
reader = csv.reader(f)
for row in reader:
#process my data
Manchmal jedoch Ich möchte die Header nicht in meine Daten aufnehmen, benötige aber immer noch ihre Werte. In diesem Fall transformiere ich die csv.reader
in eine Liste und handle die Header getrennt.
with open('myfile.csv', 'rb') as f:
reader = list(csv.reader(f))
my_header = reader.pop(0) #remove header
for row in reader:
#process my data
Das funktioniert und ich bin glücklich darüber. Aber ich bin mir nicht sicher, ob es der "Best Practice" Weg ist, csv.reader
zu verwenden, und es gibt andere Wege, die es wert sind, erforscht zu werden.
siehe ['pandas.read_csv()'] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html), was ein sehr mächtiger und vielseitiger Leser ist. –
Dies ist ein Rezept für eigensinnige Kommentare und Antworten. Aber Sie müssen den "Leser" nicht in eine "Liste" umwandeln. 'my_header = next (reader)' sollte die Kopfzeile bekommen, wenn Sie sie brauchen. – Abdou