Python Academy · leksjon

Lese CSV med csv.reader

Les CSV-filer rad for rad, og få tilgang til kolonner med indekser.

Leksjon 3 av 414 trinn

Lese CSV med csv.reader er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Introduksjon

Pythons csv-modul håndterer kompleksiteten i CSV-filer: felt med anførselstegn, skilletegn og ulike linjeslutt.

Åpne en CSV-fil

with open('data.csv', newline='') as f: er den anbefalte måten — newline='' lar csv-modulen håndtere linjeslutt.
import csv, io
sample = 'name,age,city\nAlice,30,NYC\nBob,25,LA'
reader = csv.reader(io.StringIO(sample))
for row in reader:
    print(row)

Grunnleggende om csv.reader

csv.reader(f) returnerer en iterator over rader, der hver rad er en liste med strenger.
import csv, io
data = 'a,b,c\n1,2,3\n4,5,6'
for row in csv.reader(io.StringIO(data)):
    print(row)

Hoppe over overskriften

next(reader) hopper over overskriftsraden. Du kan også bruke csv.DictReader for å få tilgang til kolonner etter navn.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
reader = csv.reader(io.StringIO(data))
header = next(reader)  # skip
for row in reader:
    print(row)

Egendefinert skilletegn

csv.reader(f, delimiter=';') leser filer med semikolondelte verdier. Det fungerer med alle skilletegn på ett enkelt tegn.
import csv, io
data = 'a;b;c\n1;2;3'
for row in csv.reader(io.StringIO(data), delimiter=';'):
    print(row)

Håndtere felt med anførselstegn

csv.reader håndterer felt med anførselstegn automatisk: 'Alice, Jr.' forblir ett felt.
import csv, io
data = 'name,note\n"Smith, John","great guy"'
for row in csv.reader(io.StringIO(data)):
    print(row)

csv.DictReader

DictReader gjør hver rad om til en OrderedDict (eller en vanlig dict i 3.8+) og bruker overskriftsraden som nøkler.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
for row in csv.DictReader(io.StringIO(data)):
    print(row['name'], row['age'])

Typekonvertering

CSV-verdier er alltid strenger. Konverter dem eksplisitt: int(row['age']), float(row['price']).
import csv, io
data = 'item,price\napple,1.5\nbanana,0.75'
for row in csv.DictReader(io.StringIO(data)):
    print(row['item'], float(row['price'])*2)

Håndtere tegnkoding

open(file, encoding='utf-8-sig') håndterer UTF-8 BOM (vanlig i CSV-filer som er generert av Excel).
# with open('data.csv', encoding='utf-8-sig', newline='') as f:
#     reader = csv.DictReader(f)
print('encoding demo')

Store CSV-filer

csv.reader er lat — den leser én rad om gangen. Du trenger ikke å laste hele filen inn i minnet.
import csv, io
data = '\n'.join(f'{i},{i*2}' for i in range(1000))
reader = csv.reader(io.StringIO(data))
print(sum(int(row[0]) for row in reader))

Oppdage dialekt

csv.Sniffer().sniff(sample) oppdager skilletegnet og stilen for anførselstegn automatisk.
import csv, io
data = 'a|b|c\n1|2|3'
sniff = csv.Sniffer().sniff(data[:100])
print('delimiter:', sniff.delimiter)
for row in csv.reader(io.StringIO(data), dialect=sniff):
    print(row)

Hurtigsjekk

Hvilken parameter bør du alltid angi når du åpner en CSV-fil med open()?

Oppsummering

csv.reader: rader som lister med strenger. DictReader: rader som ordbøker. Åpne alltid med newline=''. Håndter tegnkoding for Excel-filer. Konverter typer eksplisitt.

Fortsett

Fortsett slik! Gå videre til neste leksjon.
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Lese CSV med csv.reader» gratis?

Ja – hele teksten i «Lese CSV med csv.reader» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Lese CSV med csv.reader»?

Les CSV-filer rad for rad, og få tilgang til kolonner med indekser. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Lese CSV med csv.reader»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. JSON-koding og -dekoding
  2. Håndtere nestede JSON-strukturer
  3. Lese CSV med csv.reader
  4. Skrive CSV med csv.DictWriter
← Tilbake til Python Academy