Python Academy · Lektion

Læsning af CSV med csv.reader

Læs CSV-filer række for række, og få adgang til kolonner via indeks.

Lektion 3 af 414 trin

Læsning af CSV med csv.reader er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 4 lektioner i alt.

Introduktion

Pythons csv-modul håndterer kompleksiteten ved CSV-filer: felter i citationstegn, afgrænsere og forskellige linjeskift.

Åbning af en CSV-fil

with open('data.csv', newline='') as f: er den anbefalede måde — newline='' lader csv-modulet håndtere linjeskift.
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)

Grundlæggende om csv.reader

csv.reader(f) returnerer en iterator over rækker, hvor hver række er en liste med strenge.
import csv, io
data = 'a,b,c\n1,2,3\n4,5,6'
for row in csv.reader(io.StringIO(data)):
    print(row)

Springe overskriften over

next(reader) springer overskriftsrækken over. Du kan også bruge csv.DictReader til at få adgang til kolonner efter 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)

Brugerdefineret afgrænser

csv.reader(f, delimiter=';') læser filer, hvor felterne er adskilt med semikolon. Det fungerer med enhver afgrænser på ét tegn.
import csv, io
data = 'a;b;c\n1;2;3'
for row in csv.reader(io.StringIO(data), delimiter=';'):
    print(row)

Håndtering af felter i citationstegn

csv.reader håndterer automatisk felter i citationstegn: 'Alice, Jr.' forbliver ét 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 omdanner hver række til en OrderedDict (eller en almindelig dict i 3.8+) ved at bruge overskriftsrækken som nøgler.
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-værdier er altid strenge. Konvertér dem eksplicit: 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åndtering af tegnkodning

open(file, encoding='utf-8-sig') håndterer UTF-8 BOM, som er almindelig i CSV-filer, der er oprettet med 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 doven — den læser én række ad gangen. Du behøver ikke indlæse hele filen i hukommelsen.
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))

Registrering af dialekt

csv.Sniffer().sniff(sample) registrerer automatisk afgrænseren og stilen for citationstegn.
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)

Hurtigt tjek

Hvilken parameter bør du altid angive, når du åbner en CSV-fil med open()?

Opsummering

csv.reader: rækker som lister med strenge. DictReader: rækker som ordbøger. Åbn altid med newline=''. Håndtér tegnkodning for Excel-filer. Konvertér typer eksplicit.

Fortsæt

Bliv ved på den gode måde! Gå videre til den næste lektion.
Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
76
Lektioner
320

Ofte stillede spørgsmål

Er lektionen “Læsning af CSV med csv.reader” gratis?

Ja — hele teksten til “Læsning af CSV med csv.reader” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Læsning af CSV med csv.reader”?

Læs CSV-filer række for række, og få adgang til kolonner via indeks. Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Python Academy?

Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Læsning af CSV med csv.reader”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Python Academy-lektion?

Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. JSON-kodning og -afkodning
  2. Håndtering af indlejrede JSON-strukturer
  3. Læsning af CSV med csv.reader
  4. Skrivning af CSV med csv.DictWriter
← Tilbage til Python Academy